docker 门外初体验--docker stack (五)

系列文章目录

docker 门外初体验–docker stack (五)



前言

本文主要对docker stack 进行学习,及谈一谈本人对docker stack的理解.


一、docker stack是什么?

如下为本文中使用的docker-compose.yml文件的具体内容。

version: "3"
services:
  web:
    image: pan19881018/get-start:part2
    volumes:
      - .:/app
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    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:6739"
    volumes:
      - ./data:/data
    deploy:
      placement:
        constraints: [node.role == manager]
    networks:
      - webnet
networks:
  webnet:

docker stack 是容器编排技术,初次接触不太好理解,我们通过实际的操作来理解。 在本文的实操中,我们将通过操作来体验在docker stack是如何实现容器编排。docker stack 技术栈。技术栈是一组相关的服务,它们共享依赖项并且可以一起进行编排和扩展。按我的理解就是docker的最终的目标是为了提供服务,单一的服务无法满足实际的应用场景,服务的组合才能满足我们实际的应用场景。

二、操作过程

如下为docker stack的实操日记。

# docker-machine ssh myvm1 “docker swarm init –advertise-addr 192.168.99.100:2377”
Swarm initialized: current node (qmsgq8wgya34mfxgd94jvt2hh) is now a manager.

To add a worker to this swarm, run the following command:

docker swarm join –token SWMTKN-1-0l4021umvvtfjk9meufz4gks5gc8qa5yu16leg367m9s3ca24e-cwuj8c047v6xvvbxho2flx6xw 192.168.99.100:2377

To add a manager to this swarm, run ‘docker swarm join-token manager’ and follow the instructions.

# docker-machine ssh myvm2 “docker swarm join –token SWMTKN-1-0l4021umvvtfjk9meufz4gks5gc8qa5yu16leg367m9s3ca24e-cwuj8c047v6xvvbxho2flx6xw 192.168.99.100:2377”
This node joined a swarm as a worker.
# docker-machine ssh myvm1
## .
## ## ## ==
## ## ## ## ## ===
/”””””””””””””””””\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| ‘_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ ‘__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 18.06.1-ce, build HEAD : c7e5c3e – Wed Aug 22 16:27:42 UTC 2018
Docker version 18.06.1-ce, build e68fc7a

docker@myvm1:~$ docker stack deploy -c docker-compose.yml getstartedlab
Creating network getstartedlab_webnet
Creating service getstartedlab_web
Creating service getstartedlab_visualizer
docker@myvm1:~$ exit

# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
myvm1 * virtualbox Running tcp://192.168.99.100:2376 v18.06.1-ce
myvm2 – virtualbox Running tcp://192.168.99.101:2376 v18.06.1-ce

在页面http://192.168.99.101:8080/
# docker-machine ssh myvm1 “docker stack ps getstartedlab”
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
yhauhypkguok getstartedlab_visualizer.1 dockersamples/visualizer:stable myvm1 Running Running 6 minutes ago
lo65xbvsmyfb getstartedlab_web.1 pan19881018/get-start:part2 myvm1 Running Running 7 minutes ago
m7fompj28ptg getstartedlab_web.2 pan19881018/get-start:part2 myvm2 Running Running 7 minutes ago
y1i1bghzyhuc getstartedlab_web.3 pan19881018/get-start:part2 myvm2 Running Running 7 minutes ago
mej5094xv5k6 getstartedlab_web.4 pan19881018/get-start:part2 myvm1 Running Running 7 minutes ago
z55f2hdwwyzc getstartedlab_web.5 pan19881018/get-start:part2 myvm2 Running Running 7 minutes ago

三、操作结果

登录页面http://192.168.99.101:8080/,如下图所示:stack的样例的结果如下所示:
在这里插入图片描述


四、总结

本文主docker-compose.yml包含了三个docker镜像,这三个docker镜像具备不同的功能,我们就是通过docker stack将它们编排在一起。最终的目地就是服务组合。在实际的应用中,docker stack的回滚策略、服务更新策略等功能在本文中没有谈及还需要系统学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式实操

希望博文有助于您,您不必加班。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值