Docker Compose 概述
1.1 概述
- Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排,定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务
- 我们知道使用一个 Dockerfile 模板文件,可以让用户很方便的定 义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某 项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后 端的数据库服务容器,甚至还包括负载均衡容器等。Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件 (YAML 格式)来定义一组相关联的应用容器为一个项目(project)。有了Compose,我们就不需要再一个个组件去写一份Dockerfile,只需要将整体环境同一起来,写在一份docker-compose.yml文件即可
1.2 使用步骤
使用compose三个步骤
- 使用定义您的应用环境,Dockerfile以便可以在任何地方复制。
- 定义组成应用程序的服务,
docker-compose.yml
以便它们可以在隔离的环境中一起运行。 - 运行
docker-compose up
Compose启动并运行您的整个应用程序。
docker-compose.yml 示例
version: '3.1'
services:
mysql: #服务名称
restart: always #代表只要docker启动,那么这个容器就跟着一起启动
image: daocloud.io/library/mysql:5.7.4 #指定镜像路径
container_name: mysql #指定容器名称
ports:
- 3306:3306 #指定端口的映射
environment:
MYSQL_ROOT_PASSWORD: 123456 #指定MySQL账号root的密码
TZ: Asia/shanghai #指定时区
volumes:
- /opt/docker_mysql_tomcat/mysql:/var/lib/mysql #指定映射数据卷
httpd:
restart: always
image: php:7.2-apache
container_name: apache
ports:
- 80:80
environment:
TZ: Asia/shanghai
volumes:
- /opt/docker_mysql_tomcat/www:/var/www/html
- /opt/docker_mysql_tomcat/logs:/var/log/apache2
Compose具有用于管理应用程序整个生命周期的命令:
- 启动,停止和重建服务
- 查看正在运行的服务的状态
- 运行服务的日志输出
- 在服务上运行一次性命令
1.3 Docker-Compose使用命令
创建并启动容器 (更新了compose.yml 文件需要运行它)
docker-compose up
创建并后台启动容器
docker-compose up -d
查看当前compose进程
docker-compose ps
启动容器
docker-compose start
关闭容器
docker-compose stop
关闭并移除容器
docker-compose down
查看日志
docker-compose logs
关闭并移除容器并删除容器清除存储
docker-compose down --volumes
安装 Docker Compose
两种安装方式
- 下载docker-compose二进制文件安装
- pip安装(将Compose当作一个python应用从pip源安装)
下载二进制文件
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 使用光放github下载很慢,建议换源
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 上传至/usr/local,并修改名字,赋予可执行权限
mv docker-compose-Linux-x86_64 docker-compose
chmod 777 docker-compose
pip安装
udo pip install docker-compose
卸载
二进制包方式安装的,删除二进制文件即可
sudo rm /usr/local/bin/docker-compose
pip 安装的,则执行如下命令即可删除
sudo pip uninstall docker-compose