如何使用 docker-compose.yml 而不是 运行 命令来配置这些 docker 容器?
How can I configure these docker containers using a docker-compose.yml instead of a run command?
我有 2 个我一直在构建的独立容器,运行使用以下 运行 命令一次全部连接:
Redis 容器:
docker run -v C:\Users\me\some_directory\redis.windows.conf:/redis-
settings/redis.conf --name my_local_redis -p 6379:6379 redis gosu redis:redis
redis-server /redis-settings/redis.conf
rabbitmq 容器:
docker run -d --hostname devlab --name rabbitmq-server -p 5672:5672 -p 15672:15672 rabbitmq:3-management
我查看了 docker-compose 文档,我可以看到如何将挂载(运行 命令中的 -v)绑定到第一个 运行 中的相关目录命令,但是如何从 docker hub 中提取现有图像并通过 docker-compose yml 执行 gosu 命令?
如有任何帮助,我们将不胜感激。
要从 docker 集线器中提取图像,您只需在撰写文件中使用 image
指令指定图像名称。要 运行 一个特定的命令,你使用 command
.
不过要小心,command
会覆盖您的 CMD
,这意味着它将改变您的容器启动的进程。在redis的情况下,CMD
是redis-server
。你可以使用 command: gosu redis:redis redis-server ...
所以它会是这样的:
services:
my_local_redis:
image: redis
[...]
ports:
- 6379:6379
command: gosu redis:redis redis-server /redis-settings/redis.conf
剩下的就交给你了!
我有 2 个我一直在构建的独立容器,运行使用以下 运行 命令一次全部连接:
Redis 容器:
docker run -v C:\Users\me\some_directory\redis.windows.conf:/redis-
settings/redis.conf --name my_local_redis -p 6379:6379 redis gosu redis:redis
redis-server /redis-settings/redis.conf
rabbitmq 容器:
docker run -d --hostname devlab --name rabbitmq-server -p 5672:5672 -p 15672:15672 rabbitmq:3-management
我查看了 docker-compose 文档,我可以看到如何将挂载(运行 命令中的 -v)绑定到第一个 运行 中的相关目录命令,但是如何从 docker hub 中提取现有图像并通过 docker-compose yml 执行 gosu 命令?
如有任何帮助,我们将不胜感激。
要从 docker 集线器中提取图像,您只需在撰写文件中使用 image
指令指定图像名称。要 运行 一个特定的命令,你使用 command
.
不过要小心,command
会覆盖您的 CMD
,这意味着它将改变您的容器启动的进程。在redis的情况下,CMD
是redis-server
。你可以使用 command: gosu redis:redis redis-server ...
所以它会是这样的:
services:
my_local_redis:
image: redis
[...]
ports:
- 6379:6379
command: gosu redis:redis redis-server /redis-settings/redis.conf
剩下的就交给你了!