在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在Docker的设计中,一个容器只运行一个应用。但是目前的绝大多数应用系统都不是一个应用就可以组成的。虽然之前提到了容器间互相连接、交换数据的方法,使用这些方法也确实能搭建起一个完整应用系统的容器群。但是,需要执行很多命令,需要考虑很多应用和容器间的关系,而Docker Compose正是为了解决这些复杂的操作。 解决容器管理问题就拿最简单的例⼦来说吧,如果我们要为我们的应⽤容器准备⼀个 MySQL 容器和⼀个 Redis 容器,那么在每次启动时,我们先要将 MySQL 容器和 Redis 容器启动起来,再将应⽤容器运⾏起来。这其中还不要忘了在创建应⽤容器时将容器⽹络连接到 MySQL 容器和 Redis 容器上,以便应⽤连接上它们并进⾏数据交换。 这还不够,如果我们还对容器进⾏了各种配置,我们最好还得将容器创建和配置的命令保存下来,以便下次可以直接使⽤。 如果我们要想让这套体系像 docker run 和 docker rm 那样⾃如的进⾏⽆痕切换,那就更加⿇烦了,我们可能需要编写⼀些脚本才能不⾄于被绕到命令的⽑线球⾥。 其实核⼼还是缺少⼀个对容器组合进⾏管理的东西。 Docker ComposeDocker Compose :多容器定义和运行软件。在Docker Compose中,根据一个配置文件,将所有与应用系统相关的应用和对应的容器进行配置,再根据Docker Compose提供的命令进行启动,就可以解决上面说的多容器之间的复杂问题。 Docker Compose可以理解为是将多个容器的运行方式和配置固化,类似与Dockerfile 对于镜像的作用。 安装Docker Compose#下载 curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose #设置权限 chmod +x /usr/local/bin/docker-compose #查看安装后的信息 docker-compose version Docker Compose的基本使用Docker Compose的核心是它的配置文件,是一个基于YAML格式的文件。与Dockerfile采用Dockerfile这个名字作为镜像构建定义的默认文件名一样,Docker Compose的配置文件也有一个默认的文件名 version: '3' services: webapp: build: ./image/webapp ports: - "5000:5000" volumes: - ./code:/code - logvolume:/var/log links: - mysql - redis redis: image: redis:3.2 mysql: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=my-secret-pw volumes: logvolume: {} Docker Compose 配置⽂件⾥可以包含许多内容,从每个容器的各个细节控制,到⽹络、数据卷等的定义。
启动和停止启动
停止 容器命令这些命令看上去都和 Docker Engine 中对单个容器进⾏操作的命令类似,我们来看⼏个常见的。
同理,在 Docker Compose 还有⼏个类似的命令可以单独控制某个或某些服务。 到此这篇关于使用Docker Compose管理容器的文章就介绍到这了,更多相关Docker Compose管理容器内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论