docker compose工具
阅读数:98 评论数:0
跳转到新版页面分类
应用软件
正文
一、概述
Docker Compose 是 Docker 提供的一个工具,用于定义和运行多容器的 Docker 应用。通过一个 YAML 文件,你可以配置应用的所有服务,然后使用一个命令来创建和启动所有服务。Docker Compose 适用于开发、测试和生产环境中的多容器应用。
二、基本概念
1、service
服务是一个应用的容器,定义了容器的镜像、命令、端口映射、环境变量等。
2、network
服务之间可以通过网络进行通信,Docker Compose 会自动创建一个默认网络,所有服务都连接到这个网络。
3、volume
用于持久化数据,卷可以在多个容器之间共享数据。
三、文件结构
Docker Compose 文件使用 YAML 格式,通常命名为 docker-compose.yml
。
1、示例:web应用和数据库
假设我们有一个简单的 Web 应用,它使用 Nginx 作为前端服务器和 MySQL 作为数据库。
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./web:/usr/share/nginx/html
networks:
- webnet
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: exampledb
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- db_data:/var/lib/mysql
networks:
- webnet
volumes:
db_data:
networks:
webnet:
- 版本:
version: '3.8'
指定了 Docker Compose 文件的版本。 - 服务:
web
:定义了一个名为web
的服务,使用 Nginx 镜像,映射端口 8080 到容器的 80 端口,并挂载本地目录./web
到容器的/usr/share/nginx/html
。db
:定义了一个名为db
的服务,使用 MySQL 5.7 镜像,设置了一些环境变量来配置数据库,并挂载一个名为db_data
的卷到容器的/var/lib/mysql
目录。
- 卷:定义了一个名为
db_data
的卷,用于持久化 MySQL 数据。 - 网络:定义了一个名为
webnet
的网络,所有服务都连接到这个网络。
四、使用Docker Compose
1、启动服务
在包含 docker-compose.yml
文件的目录中,运行以下命令来启动所有服务:
docker-compose up
2、后台运行
如果希望在后台运行服务,可以使用 -d
参数:
docker-compose up -d
3、停止服务
要停止所有服务,可以使用以下命令:
docker-compose down
4、查看日志
要查看所有服务的日志,可以使用以下命令:
docker-compose logs
5、重新构建服务
如果修改了 Dockerfile 或者 docker-compose.yml
,需要重新构建服务,可以使用以下命令:
docker-compose up --build
6、常用命令
docker-compose ps
:列出所有运行的服务。docker-compose exec <service> <command>
:在指定服务的容器中执行命令。docker-compose stop
:停止所有服务。docker-compose start
:启动已停止的服务。docker-compose restart
:重启服务。