对于大多数的工作,我们都需要多个容器之间的相互配合。幸运的是,Docker提供给了我们一个巧妙的工具--Docker Compose,让我们能够无缝地建立和管理多个容器。
要安装Docker Compose,我们需要先确保已经安装了pip(一个Python包管理器)。命令如下:
sudo apt-get update sudo apt-get install -y python-pip sudo pip-install docker-compose
Docker Compose使用一个名为docker-compose.yml的YAML文件来定义应用程序的服务,使得这些服务能够一起运行在一个独立的环境中。需要注意的是,Docker Compose在目录的基础上工作,所以如果你想在一台设备上运行多个容器组,那么每个容器组都需要一个单独的目录,而且每个目录都需要一个docker-compose.yml文件。
为了更好地理解如何使用Docker Compose,让我们先来看看如何使用这个工具运行一个单独的容器:
1. 创建一个目录
mkdir HelloWorld
2. 进入目录里并创建一个包含如下内容的docker-compose.yml文件:
hellocontainer:
image: hello-world
第一行指定容器的名字,第二行指定了容器将基于的镜像。
3. 在目录里运行如下命令来启动容器:
docker-compose up
我们可以看到终端上显示出了"Hello from Docker!"
接下来让我们使用Docker Compose运行一个由多个容器组成的wordpress应用:
1. 创建wordpress目录:
mkdir wordpress
2. 在目录里创建一个包含如下内容的docker-compose.yml文件:
wordpress: image: wordpress links: - database:mysql ports: - 8080:80 database: image: mariadb environment: MYSQL_ROOT_PASSWORD: supersecretpass
上面,我们指定了两个容器,wordpress与database。image关键字指定了容器将基于的镜像;links关键字关联了两个容器;ports关键字映射了主机的8080端口到容器的80端口;environment关键字设置容器中的环境变量,在这里我们将mysql root用户密码设置为了"supersecretpass"。
3. 执行docker-compose up
在主机上打开浏览器并在地址栏输入http://localhost:8080,我们就会看到wordpress的安装页面了^^
如果我们想以daemon形式启动容器组,可以执行docker-compose up -d命令。
Note:
- docker-compose up – 启动容器组
- docker-compose stop – 停止容器组
- docker-compose ps – 列出所有容器组,无论是否它们正在运行
- docker-compose kill – 强制停止一个容器组