Docker容器未在VM上运行

时间:2017-04-29 00:18:58

标签: docker docker-compose

我是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

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您的docker-compose.yml文件表明web服务应使用hello-world图片,该图片只会打印一条消息&amp;运行时退出,导致所有容器停止。据推测,您打算使用通过构建docker-test/创建的图像;要执行此操作,只需将image: hello-world行替换为build: docker-test