自动化运维之docker三剑客——Docker Machine、Docker Compose、Docker Swarm(未完待续)

一、Docker Machine

1、Docker Machine简介

Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。

Docker Machine支持在常规Linux操作系统、虚拟化平台、openstack、公有云等不同环境下安装配置docker host。

Docker Machine 项目基于 Go 语言实现,目前在 Github 上的维护地址: https://github.com/docker/machine/

2、Docker Machine实践

新建一个纯净的虚拟机server3,用docker-machine在server3上部署docker

准备工作一:需要用到主机的Apache,发布此文件作为给server3部署的docker软件源。

准备工作二:在主机的Apache发布目录中编辑自动执行脚本

 准备工作三:通过server1上的docker-machine为server3部署docker

[root@server1 ~]# docker-machine create --driver generic --engine-install-url "http://172.25.254.50/get-docker.sh" --generic-ip-address=172.25.254.3 server3
#指定安装脚本的url; 指定目标主机server3及IP

安装结果如下:已经自动配置好server3的docker源 和docker软件

 创建流程:

ssh免密登陆远程主机

安装docker软件包

复制证书

配置docker daemon

启动docker

查看主机:

docker-machine 子命令: 

docker-machine upgrade  server2    更新docker版本

docker-machine config  server2    查看machine配置

docker-machine scp             可以在machine中复制文件

docker-machine ssh            连接machine

docker-machine rm            删除machine

二、Docker Compose

1、Docker Compose简介

微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知。

Docker Compose是一种编排服务,基于pyhton语言实现,是一个用于在 Docker 上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。

用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。 解决了容器与容器之间如何管理编排的问题。

Docker Compose 中有两个重要的概念:

服务 (service) :一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。

项目 (project) :由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

2、Docker Compose实践

官方文档:

Compose file | Docker DocumentationCompose file referencehttps://docs.docker.com/compose/compose-file/

三、Docker Swarm

1、Docker Swarm简介

Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。

Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。

Swarm可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。

Docker Swarm 是一个为 IT 运维团队提供集群和调度能力的编排工具。

 Docker Swarm 优点:

任何规模都有高性能表现

灵活的容器调度

服务的持续可用性

和 Docker API 及整合支持的兼容性

Docker Swarm 为 Docker 化应用的核心功能(诸如多主机网络和存储卷管理)提供原生支持。

2、Docker Swarm实践

docker集群的创建:

[root@server2 ~]# cat docker-compose.yml 
version: "3.9"
services:
  webservice:
    image: myapp:v1
    ports:
      - "80:80"
    networks:
      - web_net
    deploy:
      replicas: 6
      update_config:
        parallelism: 2
        delay: 2s
      restart_policy:
        condition: on-failure

  visualizer:
    image: visualizer
    ports:
      - "8080:8080"
    stop_grace_period: 1m30s
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints:
          - "node.role==manager"

networks:
  web_net:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值