目录
- 一、Docker是什么
- 二、为什么使用Docker
- 三、Docker优势
- 四、Docker和虚拟机的区别
- 五、镜像命令
- 六、容器命令
一、Docker是什么
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个镜像中,然后发布到其他的任何操作系统上,可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
二、为什么使用Docker
大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:
- 依赖关系复杂,容易出现兼容性问题
- 开发、测试、生产环境有差异
三、Docker优势
Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?
- Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
- Docker应用运行在容器中,使用沙箱机制,相互隔离
Docker如何解决开发、测试、生产环境有差异的问题?
- Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行
四、Docker和虚拟机的区别
虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行Linux系统。
而Docker仅仅是封装函数库,并没有模拟完整的操作系统,它只封装了所需的一部分操作系统的库。
总结:
- docker是一个系统进程;虚拟机是在操作系统中的操作系统
- docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般
五、镜像命令
镜像名称:
- 镜名称一般分两部分组成:[repository]:[tag]。
- 在没有指定tag时,默认是latest,代表最新版本的镜像
例如:mysql : 5.7
镜像命令:
注: 当忘记命令时可以使用help查询,例如:保存镜像命令
docker save --help
1、从dockerHub上拉取一个镜像
docker pull rabbitmq
这样拉取的便是mysql最新版本的镜像,拉去指定版本需要指定
docker pull rabbitmq:3.8-management
2、保存,导入镜像
保存:
docker save -o nginx.tar nginx:latest
导入:
docker load -i nginx.tar
加载前务必记得删除之前存在的镜像
docker rmi nginx:latest
六、容器命令
容器保护三个状态:
- 运行:进程正常运行
- 暂停:进程暂停,CPU不再运行,并不释放内存
- 停止:进程终止,回收进程占用的内存、CPU等资源
容器命令:
- docker run:创建并运行一个容器,处于运行状态
- docker pause:让一个运行的容器暂停
- docker unpause:让一个容器从暂停状态恢复运行
- docker stop:停止一个运行的容器
- docker start:让一个停止的容器再次运行
- docker rm:删除一个容器
命令参数:
例:解读下面两个命令
docker run --name containerName -p 80:80 -d nginx
- docker run :创建运行一个容器
- –name:给容器起一个名字
- -p:将主机端口和容器端口映射,左边为主机端口,右边为容器端口
- -d:后台运行容器
- nginx:镜像的名称
docker exec -it mn bash:进入容器内部
- docker exec :进入容器内部,执行一个命令
- -it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
- mn:要进入的容器的名称
- bash:进入容器后执行的命令,bash是一个linux终端交互命令
注: 容器内部没有vi命令
完成拉取镜像,创建和运行容器之后,便可以进行使用了。