Docker在概念上与虚拟机非常类似,但是轻量很多,它不会模拟底层的硬件,只会为每一个应用提供完全隔离的运行环境,可以在环境中配置不同的工具软件,并且不同环境之间相互不影响,这个“环境”在Docker中也被称为container/容器。

Dockerfile-image-Container
镜像可以理解为一个虚拟机的快照,里面包含了你要部署的应用程序以及它所关联的所有库,通过镜像,我们可以创建许多个不同的Container容器,这里的容器就像一台台运行起来的虚拟机,里面运行了你的应用程序,每个容器是独立运行的,他们相互之间不影响。最后Dockerfile是一个自动化的脚本,主要被用来创建镜像,这个过程就好比是在虚拟机中安装操作系统和软件一样,只不过通过Dockerfile这个自动脚本完成了

Docker命令
用Dockerfile创建一个镜像
1 2 3 4 5
| docker build -t my-finance . 参数 -t:tag/标签 指定镜像的名字 . :表示docker应该在当前目录下寻找这个Dockerfile,这个不能省略
|
启动容器
1 2 3 4
| docker run -p 80:5000 -d my-finance 参数 -p:该参数会将容器上的某一个端口映射到本地主机上,这样才能从主机上访问容器中的web应用,80是本地主机上的端口,5000是容器上的端口; -d:让容器在后台运行,这样容器的输出不会直接显示在控制台
|
列举所有容器
停止容器
重启容器
删除容器
启动一个远程shell
1
| docker exec -it <容器ID> /bin/bash
|
volume数据卷
可以把其当做是一个在本地主机和不同容器中共享的文件夹,比如说在某个容器中修改了某一个volume的数据,这个操作会反应在其他的容器上

1
| docker volume create my-finance-data
|
随后在启动容器的时候可以通过-v指定这个数据卷挂载(mount)在容器中的哪个路径上
1 2
| docker run -dp 80:5000 -v my-finance-data:/etc/finance my-finance my-finance-data:/etc/finance:表示my-finance-data这个数据卷挂载到了/etc/finance路径下
|
Docker compose
创建docker-ompose.yml
Docker Compose 是一个用于定义和 管理多个容器的工具,它通过 docker-ompose.yml文件管理多 配容置器文件来 Docker描述 应应用用程序程序的。服务它、允许网络开发和者卷等使用。一个通过配置文件 Compose(,通常用户是可以 定义docker一个多容器的-compose应用并.yml使用
单个命)令来定义启动应用或程序停止中的所有容多个器服务。、它网络帮助和简卷化,从了开发而、测试简和化生产环境和中自动多个化容容器器协的作部署的管理、工作管理。
在知道Docker之前,我还是一个在VMware上面创建无数个虚拟机的小菜鸡,最近想开始着手开发实验,去跟师兄聊了一下我打算怎样去开展的实验,其中就有一点就是提到我正在安装VMware创建虚拟机。师兄问我为什么要用这个,建议我在容器上跑。虽然知道有这个东西,但是一直没有去了解过是什么,怎么用,直到最近有去刻意学习了一下,感觉发现了新大陆。所以再一次感慨,“信息差是一个巨大的技术壁垒!”。