如何使用 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的情况下,CMDredis-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

剩下的就交给你了!