Docker Compose 是一个工具,用于定义和运行多容器 Docker 应用。通过 Docker Compose,你可以使用一个 YAML 文件来配置应用的服务、网络、卷等,并通过一个简单的命令来启动和管理这些服务。
1. 安装 Docker Compose
在 Ubuntu 上安装 Docker Compose,按以下步骤操作:
1.1 下载 Docker Compose 安装脚本
运行以下命令下载最新的 Docker Compose 安装脚本:
bash
复制编辑
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r .tag_name)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
1.2 设置 Docker Compose 可执行权限
设置文件可执行权限:
bash
复制编辑
sudo chmod +x /usr/local/bin/docker-compose
1.3 验证安装
确认 Docker Compose 安装成功:
bash
复制编辑
docker-compose --version
如果安装成功,命令会输出类似以下的版本信息:
bash
复制编辑
docker-compose version 1.29.2, build 5becea4c
2. 使用 Docker Compose 启动容器
2.1 创建 docker-compose.yml
文件
Docker Compose 使用一个 YAML 文件来定义服务、网络和卷等。首先,在你的项目目录下创建一个 docker-compose.yml
文件。示例如下:
yaml
复制编辑
version: '3.8' services: web: image: nginx:latest ports: - "8080:80" volumes: - ./data:/usr/share/nginx/html networks: - webnet db: image: postgres:latest environment: POSTGRES_PASSWORD: example networks: - webnet networks: webnet: driver: bridge
在此示例中:
web 服务使用了
nginx
镜像,并将宿主机的./data
目录挂载到容器内/usr/share/nginx/html
。db 服务使用了
postgres
镜像,并设置了 PostgreSQL 的密码。webnet
是一个自定义网络,连接了两个服务。
2.2 启动服务
进入存放 docker-compose.yml
文件的目录,使用以下命令启动所有服务:
bash
复制编辑
docker compose up -d
-d
参数表示容器在后台运行。
2.3 查看 Docker Compose 启动的容器
你可以使用以下命令查看运行中的容器:
bash
复制编辑
docker ps
2.4 停止 Docker Compose 服务
如果要停止并删除容器、网络和卷:
bash
复制编辑
docker compose down
如果只想停止服务,但不删除容器和网络,可以使用:
bash
复制编辑
docker compose stop
2.5 查看日志
你可以查看 Docker Compose 启动的服务的日志:
bash
复制编辑
docker compose logs
或者查看特定服务的日志:
bash
复制编辑
docker compose logs web
2.6 重启 Docker Compose 服务
如果你对 docker-compose.yml
文件做了修改,想要重新启动服务,可以使用:
bash
复制编辑
docker compose restart
总结
安装 Docker Compose:通过下载脚本安装 Docker Compose,并设置文件可执行权限。
配置服务:通过编写
docker-compose.yml
文件,定义多个服务、网络、卷等。启动与管理容器:使用
docker compose up -d
启动容器,使用docker compose down
停止并删除容器。查看日志与重启:使用
docker compose logs
查看日志,使用docker compose restart
重启服务。
使用 Docker Compose 可以轻松管理多个容器,尤其是当你需要将多个服务组合成一个应用时,Docker Compose 是一个非常有用的工具。