运行 Cloudant 作为 docker 容器,具有 docker 组合

Running Cloudant as docker container with docker compose

我正在尝试将此图像 https://hub.docker.com/r/ibmcom/cloudant-developer/ 与 docker 组合使用,当我使用原始说明时它有效,但是当我将其转换为 docker 组合格式时它不起作用'无法正常工作,我看到了仪表板页面,但它是空的,而且似乎损坏了。

原来的运行命令:

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 - 我确实手动执行了许可协议的命令

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

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: