Docker 实操
---恢复内容开始---
一、简介
Linux容器作为一类操作系统层面的虚拟化技术成果,旨在立足于单一Linux主机交付多套隔离性Linux环境。与虚拟机不同,容器系统并不需要运行特定的访客操作系统。相反,容器共享同一套主机操作系统内核,同时利用访客操作系统的系统库以交付必要的系统功能。由于无需借助于专门的操作系统,因此容器在启动速度上要远远优于虚拟机。

上图是经典对比图,左图是传统的虚拟化,属于平台虚拟化(半虚拟化,硬件辅助虚拟化,软件全虚拟化)每个虚拟机运行在自己独立完整的操作系统;右图是容器,与虚拟机不同,容器系统并不需要运行特定的访客操作系统;
容器能够利用Namespaces、SELinux配置、chroot以及CGroups等Linux内核功能,从而交付一套类似于虚拟机的隔离性环境。Linux安全模块能够确保来自容器的主机设备与内核访问行为受到妥善管理,从而避免入侵活动的发生。除此之外,容器还能够通过其主机操作系统运行多种不同Linux发行版——只要各类操作系统拥有同样的底层CPU架构要求;
那么Docker 是开源基于LXC的高级容器引擎,基于go 语言开源,使用内核的cgroups(文件系统隔离)及namespace(一种命名方法);请记住Docker 是容器引擎,平常我们一般都说Docker 是容器,但是其本质别搞混了;
关于Docker及容器的介绍远远不止这些。。。。。。,回到我们的主题,是Docker 入门,通过本文,将学会基本的容器操作及环境配置;
二、安装及运行Docker(CentOS7.3):
1.安装:
[root@minion ~]# yum -y install docker
2.运行:

安装完成以后我们可以使用docker 这个命令,同时在上图中我们看到以下信息:
此时的Docker 是客户端,有版本,API版本,go 版本等信息,最重要的是最后的提示,此时的Docker Daemon 并未运行;

将Docker Daemon 运行后再次查看,可以查询到Server 的信息
3.帮助

4.查看本地仓库镜像

5.在dockerhub 上搜索镜像

6.拉取共享镜像
在拉取前需要更改/etc/docker/daemon.json(国内访问dockerhub速度你懂得,在这里使用了ustc的镜像加速)
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}

7.再次查看本地仓库:

哈哈,总算是把准备工作搞定了,其实准备工作里有很多细节性的东西,比如docker images 里有tag 标签,我们是可以指定标签名字的,如果使用Docker 私有仓库将会接触很多TAG,可以指定上传镜像TAG及下载镜像TAG;同样我们也可以定制自己的镜像,将一些常用服务做成镜像,那么在下次使用时就再也不用安装及配置啦;Docker 镜像是分层的,类似我们小时候用的字帖;
是的,容器运行需要:仓库、镜像、容器引擎
三、运行容器
1.运行一个名字为c1 的窗口,并获取一个shell

此时我们进入C1 容器的shell 在这里可以执行一些基本命令,
我们装一下ip 这个命令

---恢复内容结束---
一、简介
Linux容器作为一类操作系统层面的虚拟化技术成果,旨在立足于单一Linux主机交付多套隔离性Linux环境。与虚拟机不同,容器系统并不需要运行特定的访客操作系统。相反,容器共享同一套主机操作系统内核,同时利用访客操作系统的系统库以交付必要的系统功能。由于无需借助于专门的操作系统,因此容器在启动速度上要远远优于虚拟机。

上图是经典对比图,左图是传统的虚拟化,属于平台虚拟化(半虚拟化,硬件辅助虚拟化,软件全虚拟化)每个虚拟机运行在自己独立完整的操作系统;右图是容器,与虚拟机不同,容器系统并不需要运行特定的访客操作系统;
容器能够利用Namespaces、SELinux配置、chroot以及CGroups等Linux内核功能,从而交付一套类似于虚拟机的隔离性环境。Linux安全模块能够确保来自容器的主机设备与内核访问行为受到妥善管理,从而避免入侵活动的发生。除此之外,容器还能够通过其主机操作系统运行多种不同Linux发行版——只要各类操作系统拥有同样的底层CPU架构要求;
那么Docker 是开源基于LXC的高级容器引擎,基于go 语言开源,使用内核的cgroups(文件系统隔离)及namespace(一种命名方法);请记住Docker 是容器引擎,平常我们一般都说Docker 是容器,但是其本质别搞混了;
关于Docker及容器的介绍远远不止这些。。。。。。,回到我们的主题,是Docker 入门,通过本文,将学会基本的容器操作及环境配置;
二、安装及运行Docker(CentOS7.3):
1.安装:
[root@minion ~]# yum -y install docker
2.运行:

安装完成以后我们可以使用docker 这个命令,同时在上图中我们看到以下信息:
此时的Docker 是客户端,有版本,API版本,go 版本等信息,最重要的是最后的提示,此时的Docker Daemon 并未运行;

将Docker Daemon 运行后再次查看,可以查询到Server 的信息
3.帮助

4.查看本地仓库镜像

5.在dockerhub 上搜索镜像

6.拉取共享镜像
在拉取前需要更改/etc/docker/daemon.json(国内访问dockerhub速度你懂得,在这里使用了ustc的镜像加速)
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}

7.再次查看本地仓库:

哈哈,总算是把准备工作搞定了,其实准备工作里有很多细节性的东西,比如docker images 里有tag 标签,我们是可以指定标签名字的,如果使用Docker 私有仓库将会接触很多TAG,可以指定上传镜像TAG及下载镜像TAG;同样我们也可以定制自己的镜像,将一些常用服务做成镜像,那么在下次使用时就再也不用安装及配置啦;Docker 镜像是分层的,类似我们小时候用的字帖;
是的,容器运行需要:仓库、镜像、容器引擎
三、运行容器
1.运行一个名字为c1 的窗口,并获取一个shell

此时我们进入C1 容器的shell 在这里可以执行一些基本命令,
我们装一下ip 这个命令

是不是与在宿主机上没有区别呢

- 离开容器(为什么是离开,如果是退出,那么容器就挂了)
Ctrl+p+q

在这里能看到正在运行的容器,容器的ID 使用的镜像,执行的命令,创建时间以及它的名字

退出容器:

直接从容器退出后,docker ps 已经看不到了,那么

启动一个退出的容器

使用宿主机停止容器

删除容器
先停止再删除

面docker rm “ID编号”与docker rm “name”效果一样,此进再用docker ps 去查看容器已经看不到C1了。
总结:通过这几个命令,已经可以运行,连接,查看,删除容器了,如果想真正使用这些容器,这些远远不够;
一向不善于总结,总是想到哪里说到哪里,以上是Docker 的基本命令及操作,通过这些命令我们可以轻易的运行一个容器,并在不使用后销毁,在运行容器的时候你会发现不到很快容器就运行起来了,具体时间看宿主机配置,一般都在1秒左右,和传统虚拟机相比快多啦;
同时,虽然我们已经能够运行容器,但是也存在着问题:端口,服务,存储等等;
Docker 实操的更多相关文章
- Docker安装MySql完整教程、实操
docker:官网 docker:镜像官网: 镜像官网可以所有应用,选择安装环境:会给出安装命令,例如:docker pull redis 默认拉取最新的版本(指定版本:docker p ...
- 从零实操基于WSL2 Docker部署Asp.Net Core项目
前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...
- SBT实操指南
参考资料:1.英文官方文档2.中文官方文档,内容翻译的不全 SBT是类似maven和gradle的自动构建和包依赖管理工具,SBT是Scala技术体系下的包管理工具,都是Lightbend公司开发的, ...
- ASP.NET Core托管和部署Linux实操演练手册
一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...
- 干货 | 京东云应用负载均衡(ALB)多功能实操
应用负载均衡(Application Load Balancer,简称ALB)是京东云自主研发的一款七层负载均衡产品,主要面向HTTP和HTTPS流量的WEB应用程序,提供灵活的功能配置.应用负载均衡 ...
- Istio的流量管理(实操一)(istio 系列三)
Istio的流量管理(实操一)(istio 系列三) 使用官方的Bookinfo应用进行测试.涵盖官方文档Traffic Management章节中的请求路由,故障注入,流量迁移,TCP流量迁移,请求 ...
- harbor安装实操笔记
纸上得来终觉浅,实操一遍吧! 把所有开发的后端服务先在打成镜像,传到私有镜像仓库: 然后在任意的远程机器拉取镜像,然后可采用docker或者docker-compose的方式运行,本节先按照docke ...
- 72 个网络应用安全实操要点,全方位保护 Web 应用的安全
原文地址:Web Application Security Checklist 原文作者:Teo Selenius(已授权) 译者 & 校正:HelloGitHub-小熊熊 & 卤蛋 ...
- 生产环境搭建高可用Harbor(包括恢复演练实操)
生产环境搭建高可用Harbor(包括恢复演练实操) 前言 因资源成本问题,本Harbor高可用架构为最小开销方案,如果资源充足,可以将PG.Redis全部使用使用云厂商集群模式. 同时为了配置简单,并 ...
随机推荐
- Lotus and Horticulture
Lotus and Horticulture Accepts: 91 Submissions: 641 Time Limit: 4000/2000 MS (Java/Others) Memory Li ...
- 【剑指Offer】不用加减乘除做加法 解题报告(Java)
[剑指Offer]不用加减乘除做加法 解题报告(Java) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-interviews 题 ...
- LeetCode 1482. 制作 m 束花所需的最少天数
LeetCode 1482. 制作 m 束花所需的最少天数 题目 给你一个整数数组 bloomDay,以及两个整数 m 和 k . 现需要制作 m 束花.制作花束时,需要使用花园中 相邻的 k 朵花 ...
- 1340 - Story of Tomisu Ghost
1340 - Story of Tomisu Ghost PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...
- 编写Java程序,用套接字编程模拟实现银行认证过程
需求说明: 某银行一核心服务器部署了一个资金交易来往的系统,为了防止黑客入侵窃取数据,该银行专门开发了一款负责安全认证的智能机器人守护服务器,对外来访问做多重身份认证.现在要求你用套接字编程模拟实现这 ...
- mysql在Linux下大小写敏感设置
默认情况下,mysql在windows下是不区分大小写的,但是mysql在linux下大小写规则是这样的: 1.数据库名与表名是严格区分大小写的: 2.表的别名是严格区分大小写的: 3.列名与列的别名 ...
- 初识python: xml 操作
导入模块: import xml.etree.ElementTree as ET 创建xml文件: new_xml = ET.Element("namelist") # 创建根节点 ...
- [ Flask ] myblog_flask问题集(RESTfull风格)
VUE问题 前端VUE怎么捕获所有404NOT FOUND的路由呢? [ 解决方案 ] vue-router路由守卫,参考文档:动态路由匹配 对于路由.../edit/<id>,自己能编辑 ...
- reduce/reduceRight
使用 reduce 和 reduceRight 方法可以汇总数组元素的值,具体用法如下: reduce function appendCurrent (previousValue, currentVa ...
- 第10组 Beta冲刺 总结
1.基本情况 组长博客链接:https://www.cnblogs.com/cpandbb/p/14050808.html 答辩总结: ·因为alpha阶段的产品做得偏离了方向,所以beta冲刺大家非 ...