使用 Docker Compose 管理多个容器-阿里云开发者社区

开发者社区> 王振威> 正文

使用 Docker Compose 管理多个容器

简介: 使用 Docker Compose 管理多个容器 ** 学习Docker的过程中,会发现,当容器之间存在依赖关系的时候,会出现启动先后顺序的问题,还有多个容器同时启动,需要打多条命了,显得非常繁琐。
+关注继续查看

使用 Docker Compose 管理多个容器

  • ** 学习Docker的过程中,会发现,当容器之间存在依赖关系的时候,会出现启动先后顺序的问题,还有多个容器同时启动,需要打多条命了,显得非常繁琐。使用Docker Compose , 可以做到一键启动多个容器。**

  • ** Docker Compose 是一个用来定义和运行的复杂应用的Docker工具,使用Compose,你可以在一个文件中,定义多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。

    • github.com/docker/compose **

** 一个使用Docker容器的应用,通常由多个容器组成,使用Docker Compose , 不在需要使用 shell脚本来启动容器,在配置文件中,所有的容器通过 service 来定义,然后使用 docker-compose 脚本来启动、停止和重启应用,和应用中的服务以及所有依赖服务的容器.**

完整的命了列表如下:

命令 说明
build 构建活重建服务
help 命令帮助
kill 杀掉容器
logs 显示容器的输出内容
port 打印绑定的开放端口
ps 显示容器
pull 拉去服务镜像
restart 重启服务
rm 删除停止的容器
run 运行一个一次性命令
scale 设置服务器的容器数目
start 开启服务
stop 停止服务
up 创建并启动容器

参考 https://docs.docker.com/compose/install/。你能运行Compose在OSX和64位Linux上。当前不支持Windows操作系统。

** 安装Docker Compose **

curl -L https://github.com/docker/compose/releases/download/1.4.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod  777  /usr/local/bin/docker-compose

** 配置文件 **
1、Compose的配置文件是 docker-compose.yml。让我们看看下面这个文件:

mysqldb:
image:[classroom.example.com:5000/]mysql
environment:
MYSQL_DATABASE:sample
MYSQL_USER:mysql
MYSQL_ROOT_PASSWORD:supersecret
mywildfly:
image:[classroom.example.com:5000|arungupta]/wildfly-mysql-javaee7
links:
- mysqldb:db
ports:
- 8080

** 说明: **
a、定义了两个服务,分别叫 mysqldbmywildfy
b、使用 image 定义了每个服务器的镜像名
c、MySQL容器的环境变量定义在 environment
d、MySQL容器使用links和WildFly容器链接
e、使用ports使用端口转发

** 启动服务 **
1、如果你从互联网运行,将docker-compose-internet.yml 保存为docker-compose.yml
2、如果你使用教师给的镜像,将docker-compose-instructor.yml 保存为 docker-compose.yml
3、使用下面的命令,所有的服务将使用后台模式被动启动

docker-compose up -d

** 显示的输出如下: **
Creating attendees_mysqldb_1... Creating attendees_mywildfly_1...
使用-f指定代替的compose文件。
使用-p指定代替compose文件所在的目录。

** 验证服务是否启动 **
docker-compose ps
输出结果

这里提供了一个整合的列表显示所有启动的服务和容器。

同时,通常使用docker ps命令验证应用的容器,和在Docker主机运行的其他容器。

  • 查询服务器日志。
  • 验证应用
  • 扩展服务
    你可以像这样扩展服务:
docker-compose scale mywildfly=4
Creating and starting 2... done
Creating and starting 3... done
Creating and starting 4... done

检查日志:

docker-compose logs

检查运行的实例:

docker-compose ps

Name Command Start Ports

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Kubernetes 1.4:一个DevOps工具管理所有的容器
本文讲的是Kubernetes 1.4:一个DevOps工具管理所有的容器【编者的话】有很多的DevOps工具管理容器,但Kubernetes迅速成为其中的佼佼者。
1582 0
Docker使用命令和技巧
既然已经搭建好了Docker关于基础的命令以及使用方式我们当然要进行学习,还有一些小技巧比如批量操作镜像加速和怎么寻找合适的Docker-Images都是本节的内容
2136 0
面试题:从1, 2, 3, 4, 5五个数字中能找出多少个每位数字都不同的三位数?
前言 前几天看到了一道简单的面试题,从5个数字中找出所有每位数字都不同的三位数的数量并且一一输出。
1295 0
+关注
王振威
王振威-杭州-Java-架构师-5年 不断学习ing。 他是一个【造过发电站】的跨行【程序员】。
27
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载