docker 系列:实践工具
前言
本文将介绍 Docker 的相关工具使用经验,比如 Docker-compose
:容器编排工具;Portainer
:容器可视化管理;以及 DockerFile
的构建。相当于是一套组合拳。让我们能更轻松、更方便去管理 Docker。
Docker Compose
使用 Docker Compose 有一个好处就是可以通过配置化的方式去编排容器。比如我们当前有 3 个服务,其中 A 依赖于 B,B 依赖于 C,那么我们就可以在 YML 中使用 depends_on 配置项,来指明对应依赖的服务。使得容器的编排更加人性化。下面列举了下比较常用的配置项:
当 YML 配置文件准备好后,我们就可以使用 docker-compose up
命令来启动运行容器了。如果想 stop
容器,可以使用 docker-compose down
则会把当前 YML 文件里的容器服务都停止掉。
Portainer
Portainer 可以帮助我们可视化的管理容器,而不需要到主机里一个一个命令的查看容器信息。管理的内容包括了 Docker 容器
、images
、volume
、network
等常用功能。
Portainer 服务我们可以使用下面的 YML 文件来创建:
当 Portainer 容器启动完后,我们可以访问 9000 端口,进入到如下的管理界面了:
可以看到,Portainer 这个管理工具非常的齐全,可以说是解脱了我们的双手,省了很多敲命令的时间。
DockerFile 的构建
上面的两个让容器的编排和管理更加的简洁方便,但我们还有一个关键要素:镜像。我们经常需要编写 DockerFile 以便能 build 和 push 一个自定义镜像到仓库中心。
关于 DockerFile,这里简单介绍下相关命令:
FROM:要定制的基础镜像,相当于基础系统环境,例如
centos
、alpine
RUN:要执行的命令
. :这里是指上下文路径,方便打包指定的文件给 docker 引擎使用
COPY:从上下文目录中复制文件或者目录到容器里指定路径
ADD:和 COPY 的类似
CMD:和 RUN 类似,只是 CMD 在 docker run 时运行,RUN 在 docker build 运行
ENV:环境变量
EXPOSE:要暴露的端口
WORKDIR:工作目录,容器启动时执行的命令会在该目录下执行
例如,一个 Dockerfile 如下:
这样就可以制作一个关于 python 的镜像了。
当我们在构建 DockerFile 时,应尽量的让镜像大小降到最低,要选择合适的基础镜像,不添加多余的东西。
就像上面的 python 就不需要携带文本编辑器了。另外,如果镜像的依赖关系复杂,尽量使用多阶段构建,也就是 COPY --from 之前阶段的成果。这样的话可以让我们的构建思路比较清晰明了。关于多阶段的构建,可以看看官网的这篇:多阶段构建。
总结
docker 的火热衍生出了很多其他管理工具,让我们的生产力提高很多,像除了 docker-compose
外还有 Docker Machine
,Docker Swarm
等。当然,大多数时候,上面提及到的已经够用了,大伙也可以自个深入研究。
感兴趣的朋友可以搜一搜公众号「 阅新技术 」,关注更多的推送文章。
可以的话,就顺便点个赞、留个言、分享下,感谢各位支持!
阅新技术,阅读更多的新知识。
版权声明: 本文为 InfoQ 作者【yuexin_tech】的原创文章。
原文链接:【http://xie.infoq.cn/article/7fab62d228c9c4e14017140ae】。文章转载请联系作者。
评论