Docker和DevOps:15.使用Compose部署多容器应用

163 阅读2分钟

使用Compose部署多容器应用


多容器应用:例如要部署一个wordpress,需要使用wordpress的镜像创建一个容器,还需要使用mysql的镜像创建另一个容器用来存储wordpress的数据。

一、多容器应用的管理痛点

  • 要从Dockerfile文件build多个image或者从DockerHub拉取多个image。
  • 要分别创建多个容器,且创建的时候使用不同的参数。
  • 要分别管理这些容器,启动、停止、删除。

二、Docker Compose

1.docker compose解决了多容器应用管理的痛点

在一个文件中定义了多容器的信息,docker compose通过这个文件,对这一组容器进行统一的管理,启动、停止、删除。

2.基本介绍
  • Docker Compose是一个工具
  • 这个工具可以通过一个yml文件,来定义多容器应用的信息
  • 通过一条命令,就可以根据yml文件中定义的信息,去创建、管理这多个容器。
  • 这个文件默认的名字是:docker-compose.yml

三、Docker Compose中三大概念

1.Services
  • 一个service定义(代表)一个容器:
    在定义这个容器的时候,可以指定它从某个路径下的dockerfile中build出一个镜像从而创建;也可以指定从dockerhub的image创建。
  • 可以给service指定network和volume:
    就如同docker run是指定-v参数一样。但是这里指定network和volume并不是直接指定具体的值,而是指定他们的名称,具体的值由下面的其他两大概念指定。
  • 示例:
    docker run -d --network=tier-b -v=mysql_data:/var/lib/mysql mysql:latest
    在这里插入图片描述
    在这里插入图片描述
2.Volumes
services:
	...
volumes:
	mysql_data:	/docker_data/mysql	# 指定这个volume的名称和路径
3.Networks
services:
	...
volumes:
	...
networks:
	tier-b:				# 指定这个network的名称,services中用的就是这个名称
		driver: bridge

四、Linux下安装Docker Compose

  • 下载docker compose的可执行文件
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

在这里插入图片描述

  • 给文件夹可执行权限
sudo chmod +x /usr/local/bin/docker-compose

在这里插入图片描述

  • 测试
    在这里插入图片描述

五、