我是Docker的新手,我正在关注'入门' Docker站点上的文档。
我正在尝试在VM上运行3个容器。 操作系统:Centos 7.3 Docker:17.03.1-ce
我遵循了第一部分,可以在VM内的容器上运行hello-world。
然后我转到了Docker组合示例。 我有以下目录结构:
home
|
- docker-compose.yml
|
- docker-test
|
- app.py
- Dockerfile
- requirements.txt
docker-test下的文件来自docker网站上的python app示例。
使用docker-compose,我试图运行3个hello-world示例的容器。
我的docker-compose.yml:
version: "3"
services:
web:
image: hello-world
deploy:
replicas: 3
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
ports:
- "80:80"
networks:
- webnet
networks:
webnet:
然后我运行了以下命令:
sudo docker swarm init
sudo docker stack deploy -c docker-compose.yml getstartedlab
sudo docker stack ps getstartedlab shows:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
iytr4ptz3m8l getstartedlab_web.1 hello-world:latest <node1> Shutdown Complete 16 minutes ago
s5t41txo05ex getstartedlab_web.2 hello-world:latest <node2> Shutdown Complete 16 minutes ago
91iitdnc49fk getstartedlab_web.3 hello-world:latest <node3> Shutdown Complete 16 minutes ago
然而, sudo docker ps显示没有容器,当我卷曲http://localhost:80时,它无法连接。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
我错过了什么?
答案 0 :(得分:1)
您的docker-compose.yml
文件表明web
服务应使用hello-world
图片,该图片只会打印一条消息&amp;运行时退出,导致所有容器停止。据推测,您打算使用通过构建docker-test/
创建的图像;要执行此操作,只需将image: hello-world
行替换为build: docker-test
。