【问题标题】:How to pass a parameter from docker-compose to service runned in docker image?如何将参数从 docker-compose 传递给在 docker 映像中运行的服务?
【发布时间】:2026-02-19 05:45:01
【问题描述】:

我的docker-compose.yml 在其他图片中使用official mongo docker image

mongodb:
    container_name: mongodb
    image: mongo:3.2
    volumes:
        - mongo_data:/data/db
    ports:
        - "57017:27017"
    restart: always

问题是我需要使用 --httpinterface 选项运行 mongo 守护程序。如何更改我的docker-compose.yml 以将此参数传递给最终的CMD ["mongod"]

是否可以不触摸 mongo 图像?将此图像分叉以仅添加一个参数将是一种矫枉过正。

【问题讨论】:

    标签: mongodb docker docker-compose


    【解决方案1】:

    您可以使用docker-compose.ymlcommand 选项

    mongodb:
        container_name: mongodb
        image: mongo:3.2
        command: mongod --httpinterface
        volumes:
            - mongo_data:/data/db
        ports:
            - "57017:27017"
        restart: always
    

    【讨论】:

    • 请注意,MongoDB 3.6 删除了已弃用的 HTTP 接口。可以从here看到