docker-compose 使用

Posted template

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker-compose 使用相关的知识,希望对你有一定的参考价值。

Docker提供一个容器编排工具------》Docker Compose,它允许用户在一个模板(YAML格式)中定义一组相关联的应用容器,这组容器会根据配置模板中的"--link"等参数

对启动的优先级自动排序,简单执行一条"docker-compose up",就可以把同一个服务中的多个容器一次创建和启动。

安装docker-compose:

curl -L https://github.com/docker/compose/release/download/1.6.0/docker-compose-`uname -s`-`uname -r` > /usr/local/bin/docker-compose

chmod +x
/usr/local/bin/docker-compose

 

使用Docker Compose管理多个容器,首先需要把容器写到它的配置文件中,默认配置文件名为docker-compose.yml,我们可以通过“-f”选项指定配置文件。

下面通过安装redmine来说明

将docker run创建容器的指令改造为Docker Compose的配置文件

postgresql容器创建和启动的命令为:

[[email protected] ~]# docker run --name postgresql-redmine -d > --env DB_NAME=redmine_production > --env DB_USER=redmine > --env DB_PASS=password > sameersbn/postgresql:9.4-12

它使用sameersbn/postgresql:9.4-12镜像创建了一个名字为postgresql-redmine的容器,并配置了三个环境变量。转换为Docker Compose配置文件内容如下:

postgresql:
  image: sameersbn/postgresql:9.4-12
  environment:
    - DB_NAME=readmine_production
    - DB_USER=redmine
    - DB_PASS=password

redmine容器创建和启动的命令为:

docker run --name redmine -d --link postgresql-redmine:postgresql --publish 10083:80 --env REDMINE_PORT=10083 sameersbn/redmine:3.2.0-4

它使用 sameersbn/redmine:3.2.0-4镜像创建了一个名字为redmine的容器,转换为Docker Compose配置文件内容如下:

redmine:
  image: sameersbn/redmine:3.2.0-4
  links:
    - postgresql:postgresql
  ports:
    - "10083:80"
  environment:
    - REDMINE_PORT=10083 

 

创建配置文件~/redmine/docker-compose.yml,合并内容如下:

postgresql:
  image: sameersbn/postgresql:9.4-12
  environment:
    - DB_NAME=readmine_production
    - DB_USER=redmine
    - DB_PASS=password
        
redmine:
  image: sameersbn/redmine:3.2.0-4
  links:
    - postgresql:postgresql
  ports:
    - "10083:80"
  environment:
    - REDMINE_PORT=10083    

执行新容器组的创建和启动:

docker-compose up -d

最后,通过http://ip10083就可以访问网站。

后续启动和停止就变得非常简单了:

停止命令:

docker-compose stop

启动命令:

docker-compose start

 



以上是关于docker-compose 使用的主要内容,如果未能解决你的问题,请参考以下文章

将 docker-compose 与 CI 结合使用 - 如何处理退出代码和守护程序链接容器?

使用`docker-compose run`时无法调试,但`docker-compose up`有效

使用 docker 运行多个项目,每个项目都使用 docker-compose 运行

无法使用 Rider 调试使用 docker 容器和 docker-compose 构建的 .net 核心应用程序。容器退出代码 139

Docker Compose部署Nexus3时的docker-compose,yml代码

docker 部署 coredns(内部域名解析)