使用 Composerize 从
docker run
命令创建 Docker Compose 文件
如果你每天在正式或个人系统中使用 Docker,你应该知道有一个有用的应用叫 Composerize。在这个简短的指南中,我们将了解什么是 Composerize,以及如何使用 Composerize 在 Linux 中将 docker run
命令转换为 Docker Compose 文件格式。
什么是 Composerize?
Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。Docker Compose 只是一个 YAML 文件,我们在其中为 Docker 应用定义服务、网络和卷。
不是每个人都擅长写高效的 Docker Compose 文件。你们中的一些人可能会发现,甚至写一个简单的 Docker Compose 文件都很困难。不用担心! 看下 Composerize,它可以帮助你从 docker run
命令中创建 Docker Compose 文件。
Composerize 是一个命令行和基于网络的工具,可以将 docker run
命令转换成 Docker Compose 文件。
无论 docker run
命令是简单、简短还是冗长、复杂,都没有关系。你所要做的就是把命令传给 Conposerize。Composerize 会立即将 docker run
命令变成 Docker Compose 文件!
在 Linux 中安装 Composerize
Composerize 是作为一个网络服务提供的。所以你不需要在你的系统上安装它。如果你因为任何原因想在本地安装它,请继续阅读。
Composerize 可以用 npm 安装。确保你的系统中已经安装了 Nodejs。如果没有安装,请按照下面的链接来安装 Nodejs。
- 如何在 Linux 上安装 NodeJS
安装完 Nodejs 后,运行以下命令来安装 Composerize:
$ npm install composerize
该命令将只为当前用户安装 Composerize。
如果你想在全局(全系统)安装它,请运行上述命令并加上 -g
选项,如下所示。
$ npm install composerize -g
用 Composerize 将 Docker 命令转换为 Docker Compose 文件
要将 docker run
命令转换为 Docker Compose 格式,只需用 Composerize 运行它,如下所示:
$ composerize docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
它将以 Docker Compose 文件格式生成内容。
示例输出:
version: '3.3'
services:
portainer:
ports:
- '9000:9000'
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
image: portainer/portainer
现在在你的 docker-compose.yml
文件中复制上面几行。就这么简单!
正如我所说,你也可以使用 Composerize 网络服务将 docker run
命令转换成 Docker Compose 格式。
进入 https://www.composerize.com/,将 docker run
命令粘贴到框中,你就会立即得到 docker-compose.yml
文件!
将命令转换为 Docker Compose 文件后,到你保存 docker-compose.yml
文件的位置,运行以下命令来启动 Docker 应用:
$ docker-compose up
Composerize 是对 Docker 用户有用的工具之一。你现在可以安全地告别漫无边际的 Docker 命令了。
资源:
- Composerize GitHub 仓库