Docker 的三大重要概念:容器、镜像、仓库
Docker 官方给用户提供一个官方的docker仓库,好比手机中的应用商店,里边存放着各种打包好的docker应用(Docker镜像)。
用户可以去搜索自己需要的镜像,下载到本地。最后,用户就可以应用docker 镜像创建docker容器,容器都是基于镜像而创建的,基于一个镜像可以创建若干个名字不同但是功能相同的容器。
Docker 命令
基本用法:docker + 命令关键字 + 参数
查询命令使用方法:docker COMMAND --help
查询
非交互模式下下载软件包,添加 -y 参数 docker run image-name apt-get install vim
命令分类:
- 针对docker容器的查询、创建、开启、停止操作:docker ps、docker run
- 针对docker镜像的查询、创建、删除操作:docker images、docker build
- 针对docker仓库的查询、下载操作:docker search、docker pull
命令嵌套:docker rm $(docker ps -a -q)
删除所有停止运行的容器
Docker 内部结构
过程:在一台主机上、启动docker daemon ,所有的容器都被守护进程控制,同时守护进程监听并接受Docker客户端(Docker Client)指令,并把结果返回给docker Client。
为什么要用docker
一致的运行环境
- 开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些 bug 并未在开发过程中被发现。而 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 「这段代码在我机器上没问题啊」 这类问题。
更轻松的迁移
- 由于 Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
整体交付
- 把应用的依赖打包到 docker 镜像中,保证部署的每一台机器依赖都是完整的,同时使用容器技术屏蔽了操作系统和硬件的差异,使得开发、测试、部署、运维过程中能够保持一致,解决了很多维护难题。