docker-compose 基础命令
docker-compose
说明
Docker Compose 是 Docker 官方提供的一种用于管理容器化应用程序的工具,它可以通过编写一个 YAML 文件来定义和配置多个 Docker 容器的运行方式和相互关系,然后使用 docker-compose
命令来启动、停止、构建、重启、删除等操作。
使用 Docker Compose 的主要优点是可以轻松地处理多个 Docker 容器之间的依赖关系,并在一个命令下启动全部或部分容器。同时,Docker Compose 还支持在不同的环境中运行相同的服务,比如本地测试和生产环境。
Docker Compose 使用 YAML 文件来定义多个服务和相关的配置,这些服务可以在一个命令下启动或停止,也可以指定服务之间的依赖关系。下面是一个简单的 Docker Compose YAML 文件示例:
1
2
3
4
5
6
7
8
version: "3"
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
以上文件定义了两个服务:web
和 redis
。其中,web
服务需要在当前目录下构建一个 Docker 镜像,并将主机的 5000 端口映射到容器内的 5000 端口;而 redis
服务则直接使用 Redis 官方提供的镜像。
通过 Docker Compose,你可以轻松地启动这两个服务,只需在命令行中输入 docker-compose up
即可。Docker Compose 还提供了很多其他的命令和参数,可以帮助你更好地管理容器化应用程序。
基本命令
以下是一些常用的 Docker Compose 命令:
-
docker-compose up
: 启动容器。如果需要后台运行,可以添加-d
参数。 -
docker-compose down
: 停止并删除所有在docker-compose.yaml
文件中定义的服务、网络和容器。 -
docker-compose ps
: 列出正在运行的服务和容器的状态。 -
docker-compose logs
: 查看指定服务的日志信息。 -
docker-compose build
: 构建或重新构建指定的服务或整个应用程序。 -
docker-compose run
: 在新的容器中运行一个指定的服务,并可以附加其他参数。 -
docker-compose start
: 启动停止的服务。 -
docker-compose stop
: 停止正在运行的服务。 -
docker-compose restart
: 重启正在运行的服务。
高级命令
-
docker-compose config
: 检查docker-compose.yml
文件的语法,并输出配置文件中所有服务的合并配置。 -
docker-compose kill
: 停止指定服务容器,可以使用-s
参数来指定停止信号,默认为SIGKILL
。 -
docker-compose pause
: 暂停指定服务容器。 -
docker-compose unpause
: 取消暂停指定服务容器。 -
docker-compose rm
: 删除已经停止运行的容器。 -
docker-compose pull
: 从 Docker 镜像仓库拉取最新版本的镜像。 -
docker-compose push
: 将构建好的本地镜像推送到 Docker 镜像仓库。 -
docker-compose scale
: 手动缩放服务的容器实例数量。例如,docker-compose scale web=3
将会将web
服务的容器实例数量扩大到 3 个。
例子
好的,以下是一个简单的示例,用来说明如何使用 docker-compose
命令:
假设你有一个 Web 应用程序,需要使用 Nginx 作为反向代理服务器和 PHP-FPM 作为应用程序服务器。
首先,你需要在项目根目录下创建一个名为 docker-compose.yml
的文件,并输入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3'
services:
nginx:
image: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- php-fpm
php-fpm:
build: .
volumes:
- .:/usr/share/nginx/html
这个文件定义了两个服务:Nginx 和 PHP-FPM。其中,Nginx 使用官方的 Nginx 镜像,将容器内的 80 端口映射到主机的 80 端口,并挂载当前目录下的 nginx.conf
文件作为 Nginx 的配置文件。PHP-FPM 使用 Dockerfile 中的配置构建镜像,将当前目录下的文件挂载到容器中的 /usr/share/nginx/html
目录中。
接下来,你可以使用以下命令启动和停止这个应用程序:
1
2
3
4
5
# 启动应用程序
docker-compose up -d
# 停止并删除所有容器和网络
docker-compose down
以上是一个简单的 docker-compose
示例,通过编辑 docker-compose.yml
文件来配置多个服务的参数,再通过命令行工具来启动、停止和管理这些服务,可以方便快捷地构建和管理 Docker 应用程序。