Post

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"

以上文件定义了两个服务:webredis。其中,web 服务需要在当前目录下构建一个 Docker 镜像,并将主机的 5000 端口映射到容器内的 5000 端口;而 redis 服务则直接使用 Redis 官方提供的镜像。

通过 Docker Compose,你可以轻松地启动这两个服务,只需在命令行中输入 docker-compose up 即可。Docker Compose 还提供了很多其他的命令和参数,可以帮助你更好地管理容器化应用程序。

基本命令

以下是一些常用的 Docker Compose 命令:

  1. docker-compose up: 启动容器。如果需要后台运行,可以添加 -d 参数。

  2. docker-compose down: 停止并删除所有在 docker-compose.yaml 文件中定义的服务、网络和容器。

  3. docker-compose ps: 列出正在运行的服务和容器的状态。

  4. docker-compose logs: 查看指定服务的日志信息。

  5. docker-compose build: 构建或重新构建指定的服务或整个应用程序。

  6. docker-compose run: 在新的容器中运行一个指定的服务,并可以附加其他参数。

  7. docker-compose start: 启动停止的服务。

  8. docker-compose stop: 停止正在运行的服务。

  9. docker-compose restart: 重启正在运行的服务。

高级命令

  1. docker-compose config: 检查 docker-compose.yml 文件的语法,并输出配置文件中所有服务的合并配置。

  2. docker-compose kill: 停止指定服务容器,可以使用 -s 参数来指定停止信号,默认为 SIGKILL

  3. docker-compose pause: 暂停指定服务容器。

  4. docker-compose unpause: 取消暂停指定服务容器。

  5. docker-compose rm: 删除已经停止运行的容器。

  6. docker-compose pull: 从 Docker 镜像仓库拉取最新版本的镜像。

  7. docker-compose push: 将构建好的本地镜像推送到 Docker 镜像仓库。

  8. 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 应用程序。

This post is licensed under CC BY 4.0 by the author.