我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔,继续描述docker-compose的相关信息。这款docker-compose的常见使用方式,其实就一种:docker-compose up -d。当然,并不是说,docker-compose只有up -d这一种命令行使用方式。只不过,up -d这条命令最常见罢了。其它的docker-compose命令,基本上可能也用不到。

苏南大叔:如何利用docker-compose,管理复杂多容器的应用? - docker-compose
如何利用docker-compose,管理复杂多容器的应用?(图1-1)

在实际开发中,往往需要多种业务逻辑流程。比如在WEB中和数据库的交互,这样的应用就是典型的由多个容器组成,不需要用shell去启动这些容器,所有的容器将会以一种“服务组”的方式定义在一个配置文件中。这个组件服务入口是docker-compse配置文件docker-compose.yml

docker-compose是用于定义和运行复杂Docker应用的工具。你可以在一个docker-compose.yml文件中,定义一个多容器的应用,然后使用一条docker-compose up -d命令来启动你的应用,所有相关的操作都会被自动完成。

简单的例子docker-compose.yml

下面是个docker-compose.yml的范例:(注意在每个属性配置时冒号后面必须加空格符)

version: "3"
services:
  App1:
    image: registry.cn-hangzhou.aliyuncs.com/test/node8js:v8.11.3-3
    ports:
      - "8361:8361"
    volumes:
      - /website/:/website/
  Rsync:
    image: registry.cn-hangzhou.aliyuncs.com/test/rsync
    ports:
      - "873:873"
    volumes:
      - /website/:/website/

官方的version3文件说明,请点击下面的链接查看:

苏南大叔的简要说明:

  • docker-compose.yml这个前后有好多个版本,目前最新的版本就是version:"3"了。所以,最开始的一句话就是version,用的是yml的格式。
  • 这个yml文件定义了三个服务。分别是:App1Rsynckafka三个服务。
  • build的意思,是从某个目录下构建镜像。
  • image是使用什么镜像,如果本地没有该镜像,会自动从服务器地址上下载该镜像。
  • ports是指端口映射,和docker run里面的-p一样的效果。
  • volumes这个是目录映射,和docker run里面的-v一样的效果。
  • environment这个是指环境变量,和docker run里面的-e一样的效果。

常用docker-compose命令

定义好合适的docker-compose.yml文件之后,启动的语句就一句话,如下图所示。

docker-compose up -d

非常的简单易懂。所以在本文中,主要的篇幅用于描述docker-compose.yml这个文件的组成。

其它docker-compose命令

docker-compose脚本可以用来启动、停止、重启应用和所有的应用中的服务,docker-compose的完整的命令如下:

指令内容
buildBuild or rebuild services
helpGet help on a command
killKill containers
logsView output from containers
portPrint the public port for a port binding
psList containers
pullPulls service images
restartRestart services
rmRemove stopped containers
runRun a one-off command
scaleSet number of containers for a service
startStart services
stopStop services
upCreate and start containers

可以查看服务的日志:

docker-compose logs

关闭一组docker

docker-compose down

结论

本文只涉及了最基础的docker-compose使用系你想,更多的docker-compose使用技巧,可以参见下面的链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   docker    docker-compose