前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第七章 Docker三剑客

第七章 Docker三剑客

原创
作者头像
Librant
修改2019-02-14 20:31:42
9370
修改2019-02-14 20:31:42
举报
文章被收录于专栏:跟我一起学 K8s跟我一起学 K8s

DOCKER技术在推出后掀起了一阵容器化技术的热潮,容器化使得服务的部署变得极其简易,这为微服务和分布式计算提供了很大的便利。

为了把容器化技术的优点发挥到极致,docker公司先后推出了三大技术:docker-machine,docker-compose,docker-swarm,可以说是几乎实现了容器化技术中所有可能需要的底层技术手段。

在使用go语言实现了判题引擎并打包好docker镜像后,就需要进行分布式判题的编写,这次就让我们手动实践,尝试使用docker的三大杀器来部署一个多机器构成的判题服务集群。

Docker三剑客组合,能够提供比较完善的面相服务器集群的Docker编排和部署方案,保障集群的正常运行,监控,迁移,升级,高可用性。

7.1 docker-compose 安装

docker-compose是Docker提供的一个容器编排工具,帮助用户按照指定的顺序启动容器。由于 --link 参数对容器的启动顺序有要求,docker-compose工具可以通过在ymal文件中定义关联的应用容器,对容器的启动顺序进行优先级排序。

docker-compose.yml文件格式:(https://blog.csdn.net/qq_36148847/article/details/79427878)

version: "3"

services:

redis:

image: redis:alpine

ports:

- "6379"

networks:

- frontend

deploy:

replicas: 2

update_config:

parallelism: 2

delay: 10s

restart_policy:

condition: on-failure

db:

image: postgres:9.4

volumes:

- db-data:/var/lib/postgresql/data

networks:

- backend

deploy:

placement:

constraints: [node.role == manager]

vote:

image: dockersamples/examplevotingapp_vote:before

ports:

- 5000:80

networks:

- frontend

depends_on:

- redis

deploy:

replicas: 2

update_config:

parallelism: 2

restart_policy:

condition: on-failure

result:

image: dockersamples/examplevotingapp_result:before

ports:

- 5001:80

networks:

- backend

depends_on:

- db

deploy:

replicas: 1

update_config:

parallelism: 2

delay: 10s

restart_policy:

condition: on-failure

worker:

image: dockersamples/examplevotingapp_worke

networks:

- frontend

- backend

deploy:

mode: replicated

replicas: 1

labels: [APP=VOTING]

restart_policy:

condition: on-failure

delay: 10s

max_attempts: 3

window: 120s

placement:

constraints: [node.role == manager]

visualizer:

image: dockersamples/visualizer:stable

ports:

- "8080:8080"

stop_grace_period: 1m30s

volumes:

- "/var/run/docker.sock:/var/run/docker.sock"

deploy:

placement:

constraints: [node.role == manager]

networks:

frontend:

backend:

volumes:

db-data:

7.1.1 docker-compose 下载

root@ubuntu:~# apt-get install docker-compose

7.1.2 查看安装版本

root@ubuntu:~# docker-compose version

docker-compose version 1.8.0, build unknown

docker-py version: 1.9.0

CPython version: 2.7.12

OpenSSL version: OpenSSL 1.0.2n 7 Dec 2017

7.1.3 docker-compose命令

创建和启动:

docker-compose up

启动:

docker-compose start

停止:

docker-compose stop

docker-machine

docker-compose

docker-swarm

Docker Compose 是 Docker 官方编排( Orchestration) 项目 之一, 负 责快速的部署分布式应

用 。

7.2 docker-machine 安装

7.2.1 docker-machine 下载

https://github.com/docker/machine/releases

docker-machine-Linux-x86_64

7.2.2 docker-machine 安装

cp docker-machine-Linux-x86_64 /usr/local/bin/docker-machine

chmod 755 /usr/local/bin/docker-machine

7.2.3 查看docker-machine 版本

docker-machine -v

docker-machine version 0.16.0, build 702c267f

7.3 docker-swarm 安装

7.3.1 docker-swarm 下载

https://github.com/docker/swarm/releases

swarm-v1.2.9-linux-x86_64.tgz

7.3.2 docker-swarm 安装

tar -zxf swarm-v1.2.9-linux-x86_64.tgz

cp swarm /usr/local/bin/docker-swarm

7.3.3 docker-swarm 版本

docker-swarm -v

docker-swarm version 1.2.9 (527a849)

https://www.cnblogs.com/neptunemoon/p/6512121.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 7.1 docker-compose 安装
    • 7.1.1 docker-compose 下载
      • 7.1.2 查看安装版本
        • 7.1.3 docker-compose命令
          • docker-machine
          • docker-compose
          • docker-swarm
      • 7.2 docker-machine 安装
        • 7.2.1 docker-machine 下载
          • 7.2.2 docker-machine 安装
            • 7.2.3 查看docker-machine 版本
            • 7.3 docker-swarm 安装
              • 7.3.1 docker-swarm 下载
                • 7.3.2 docker-swarm 安装
                  • 7.3.3 docker-swarm 版本
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档