本篇文章将给大家介绍几个将 docker run 命令转换成 docker compose 配置的小工具,帮助大家使用 Docker Compose 更方便地管理容器。
为什么要将 docker run 转换成 docker compose
将 docker run
转换成 docker compose
的目的是将单个 Docker 容器的运行命令转换成一个 docker-compose.yml
文件,以便使用 Docker Compose 工具来管理和运行多个容器。
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。与单个 docker run
命令不同,Docker Compose 允许你使用一个 docker-compose.yml
文件来定义多个服务(容器)、网络和卷,并通过简单的命令来管理这些服务。
下面我们通过案例,来探索一下如何手工将 docker run 转换成 docker compose。
详细步骤
- 创建
docker-compose.yml
文件: 在你的项目目录中创建一个名为docker-compose.yml
的文件。 - 定义服务: 在
docker-compose.yml
文件中,使用services
关键字来定义一个或多个服务,每个服务对应一个 Docker 容器。 - 设置镜像和容器名称: 使用
image
字段指定镜像名称和标签,使用container_name
字段指定容器名称。 - 配置端口映射: 使用
ports
字段定义端口映射,格式为"host_port:container_port"
。 - 配置环境变量: 使用
environment
字段定义环境变量。
单个容器
假设你有一个使用 docker run
命令启动的容器:
docker run -d \\ --name my-container \\ -p 8080:80 \\ -e ENV_VAR=value \\ my-image:latest
要将上述命令转换为 Docker Compose 文件,需要参照上面的命令创建一个 docker-compose.yml
文件,内容如下:
version: '3.8' services: my-service: image: my-image:latest container_name: my-container ports: - "8080:80" environment: - ENV_VAR=value
多个容器
以下是一个简单的多容器的 docker-compose.yml
文件示例:
version: '3.8' services: web: image: nginx:latest ports: - "8080:80" db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example
通过这个文件,运行 docker-compose up -d
就可以启动一个包含 Nginx 和 MySQL 的应用环境,而不需要分别运行多个 docker run
命令。
使用 Docker Compose 文件后,可以使用以下命令来启动和管理容器:
- 启动服务:
docker-compose up -d
- 停止服务:
docker-compose down
- 查看服务日志:
docker-compose logs
Docker Compose 优点
- 易于管理:使用 Docker Compose 可以轻松管理和维护多个容器及其依赖关系。
- 便于配置:所有配置集中在一个 YAML 文件中,便于版本控制和共享。
- 简化部署:只需运行一个命令就可以启动整个应用栈。
从上面的案例我们可以发现,通过将 docker run
转换为 Docker Compose 配置文件,可以更方便地管理复杂的多容器应用,同时享受更简洁的配置和更强大的功能。
Composerize
Composerize 是一个在线工具,可以自动将 docker run
命令转换成 Docker Compose 文件。只需要将 docker run
命令粘贴进去,选择 Docker Compose 版本号,即可快速生成 Docker Compose 配置。Composerize 还可以合并多个 Docker Compose 文件生成新的 Compose 文件。

此外,Composerize 还可以作为 CLI 工具在 Linux 终端使用。

地址:
Docker run to Docker compose converter
在线工具 IT Tools 下面的小工具,将 docker run
命令粘贴进去直接生成 Docker Compose 配置,还可以下载生成好的 docker-compose.yml
文件。

地址:
Compozify
Compozify 有网页和 CLI 两种模式,可以通过 Linux / macOS 终端或者 Windows PowerShell 下载编译好的二进制文件直接使用。

地址: