运行Cloudant作为docker容器与docker compose

时间:2017-03-12 08:48:36

标签: docker docker-compose cloudant

我正在尝试将此图像https://hub.docker.com/r/ibmcom/cloudant-developer/与docker compose一起使用,当我使用它的原始指令时,但当我将其翻译为docker compose格式时,它无法正常工作,我看到了仪表板页面但是它是空的,似乎坏了。

原始运行命令:

docker run \
       --privileged \
       --detach \
       --volume cloudant:/srv \
       --name cloudant-developer \
       --publish 8080:80 \
       --hostname cloudant.dev \
       ibmcom/cloudant-developer 

我创建的撰写文件:

version: '3'
services:
  cloudant:
    image: ibmcom/cloudant-developer:latest
    container_name: cloudant-developer
    hostname: cloudant.dev
    ports:
      - "8080:80"
    expose:
      - "80"
    volumes:
      - cloudant:/srv
    privileged: true
volumes:
  cloudant:

感谢您的帮助。

P.S - 我手动执行了许可协议的命令

1 个答案:

答案 0 :(得分:4)

我花了一些时间来弄明白这一点。原来cloudant docker容器绑定到默认的docker网络子网。具体来说,我发现haproxy被映射为重定向到172.17.0.2:5984并且失败了,因为默认情况下docker compose在不同的ip范围内创建一个新网络。可能还有其他与此相关的问题。最终我发现你可以使用以下配置在默认的docker网络上运行docker compose:

network_mode: bridge

所以,你的docker-compose.yml看起来像这样:

version: '3'
  services:
    cloudant:
      image: ibmcom/cloudant-developer:latest
      container_name: cloudant-developer
      hostname: cloudant.dev
      ports:
        - "8080:80"
      expose:
        - "80"
      volumes:
        - cloudant:/srv
      privileged: true
      network_mode: bridge
  volumes:
    cloudant: