docker官方文档(五)

一、准备工作

  • 安装Docker 1.13或更高版本
  • 获取Docker Compose,如第3部分先决条件中所述
  • 按照第4部分先决条件中的描述获取Docker Machine
  • 阅读第1部分中的方向
  • 第2部分中了解如何创建容器

  • 确保已friendlyhello通过将其创建到注册表来发布您创建图像 我们在这里使用该共享图像。

  • 确保您的图像作为已部署的容器运行。运行此命令,在您的信息开槽usernamerepotagdocker run -p 80:80 username/repo:tag,然后访问http://localhost/

  • docker-compose.yml第3部分获得一份方便的副本

  • 确保您在第4部分中设置的计算机正在运行并准备就绪。运行docker-machine ls以验证这一点。如果计算机已停止,请运行docker-machine start myvm1以引导管理器,然后docker-machine start myvm2再引导该工作程序。

  • 让你在第4部分中创建的swarm 运行并准备就绪。运行 docker-machine ssh myvm1 "docker node ls"以验证这一点。如果群集已启动,则两个节点都会报告ready状态。如果不是,重新初始化群和描述中加入工人设置您的群

二、stack

stack:堆栈堆栈是一组相互关联的服务,它们共享依赖关系,并且可以协调和缩放在一起。单个堆栈能够定义和协调整个应用程序的功能(尽管非常复杂的应用程序可能希望使用多个堆栈)

三、添加新服务并重新部署

1、在docker-compose.yml文件中增加visualizer服务,端口在8080,deploy仅仅在管理节点部署该应用。

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: username/repo:tag
    deploy:
      replicas: 5
      restart_policy:
        condition: on-failure
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
    ports:
      - "80:80"
    networks:
      - webnet
  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]
    networks:
      - webnet
networks:
  webnet:

  

2、确保您的shell配置为与之通信dev

 

docker-machine ls
docker-machine env dev
eval $(docker-machine env dev)

 

  

3、docker stack deploy在管理器上重新运行该命令,并更新需要更新的任何服务:

docker stack deploy -c docker-compose.yml getstartedlab

  

4、看一下可视化工具

在浏览器的8080端口查看可视化应用,通过docker stack ps来验证服务

docker stack ps getstartedlab

  

四、添加redis数据库

1、修改yml文件,增加redis内容

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: username/repo:tag
    deploy:
      replicas: 5
      restart_policy:
        condition: on-failure
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
    ports:
      - "80:80"
    networks:
      - webnet
  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]
    networks:
      - webnet
  redis:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - "/home/docker/data:/data"
    deploy:
      placement:
        constraints: [node.role == manager]
    command: redis-server --appendonly yes
    networks:
      - webnet
networks:
  webnet:

  

2、./data在管理器上创建一个目录:

docker-machine ssh dev "mkdir ./data"

  

3、确保您的shell配置为与之通信dev

4、再次部署

5、docker service ls查看服务运行情况

这样就同时部署了三个服务。

 

 

 

 

 

posted @ 2018-07-13 10:14  tutu_python  阅读(154)  评论(0)    收藏  举报