我正在尝试将此图像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 - 我手动执行了许可协议的命令
答案 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: