在Windows 10上的docker image(dind)中运行docker.Powershell以admin身份运行。通过docker-compose.yml
文件我有一个经理和一个工人集装箱。
撰写yaml文件是这样的:
version: '2'
services:
manager:
image: docker:latest
ports:
- "2375"
- "8080"
privileged: true
tty: true
worker:
image: docker:latest
ports:
- "8080"
privileged: true
tty: true
我不知道为什么或者什么tty:即使这样做也是如此,但这是让它保持原状的唯一方法。
我尝试使用:
初始化经理docker-compose exec manager docker swarm init --listen-addr 0.0.0.0:2377
我也尝试将端口设为0.0.0.0:2375,因为在compose yaml中打开了。
当我运行命令并得到它时:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
这是docker-compose ps
的结果Name Command State Ports
swarmtest_manager_1 docker-entrypoint.sh sh Up 0.0.0.0:32782->2375/tcp, 0.0.0.0:32781->8080/tcp
swarmtest_worker_1 docker-entrypoint.sh sh Up 0.0.0.0:32780->8080/tcp
在dind环境中运行和测试服务是理想的,虽然我仍然不喜欢compose,因为我正在努力学习如何更好地使用它,创建一个docker-machine并使用docker swarm模式似乎更容易,虽然我真的不确定以这种方式撰写的限制。