Docker三剑客之Machine
前言简介

Docker-machine(中文翻译docker机):一种提供管理多个docker主机的工具;提供docker主机容器的远程创建、管理、删除等功能;这样的docker主机容器前辈们称之为Dockerized主机;可用于运行docker容器。
Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。
Docker Machine 项目基于 Go 语言实现,目前在 Github 上进行维护。
虽然Docker Machine可以安装在本地或远程系统上,但最常见的方法是将其安装在本地计算机(本机安装或虚拟机)上,并使用它来部署Docker化远程服务器。
安装
Docker Machine 可以在多种操作系统平台上安装,包括 Linux、macOS,以及 Windows。
MacOS、Windows
Docker for Mac、Docker for Windows 自带 docker-machine 二进制包,安装之后即可使用。
Linux
在 Linux 上的也安装十分简单,从 官方 GitHub Release 处直接下载编译好的二进制文件即可。
例如,在 Linux 64 位系统上直接下载对应的二进制包。
curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-`uname -s`-`uname -m` > /usr/local/bin/docker-machine
chmod +x /usr/local/bin/docker-machinedocker-machine -v
使用
Docker Machine 支持多种后端驱动,包括虚拟机、本地主机和云平台等。
创建本地主机实例
Virtualbox 驱动
使用 virtualbox 类型的驱动,创建一台 Docker 主机,命名为 test。
docker-machine create -d virtualbox test
你也可以在创建时加上如下参数,来配置主机或者主机上的 Docker。
--engine-opt dns=114.114.114.114 配置 Docker 的默认 DNS
--engine-registry-mirror https://registry.docker-cn.com 配置 Docker 的仓库镜像
--virtualbox-memory 2048 配置主机内存
--virtualbox-cpu-count 2 配置主机 CPU
更多参数请使用 docker-machine create --driver virtualbox --help 命令查看。
MacOS xhyve 驱动
xhyve 驱动 GitHub: https://github.com/zchee/docker-machine-driver-xhyve
xhyve 是 MacOS 上轻量化的虚拟引擎,使用其创建的 Docker Machine 较 VirtualBox 驱动创建的运行效率要高。
brew install docker-machine-driver-xhyve
docker-machine create \
-d xhyve \
# --xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso \
--engine-opt dns=114.114.114.114 \
--engine-registry-mirror https://registry.docker-cn.com \
--xhyve-memory-size \
--xhyve-rawdisk \
--xhyve-cpu-count \
xhyve
注意:非首次创建时建议加上 --xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso 参数,避免每次创建时都从 GitHub 下载 ISO 镜像。
Windows 10
Windows 10 安装 Docker for Windows 之后不能再安装 VirtualBox,也就不能使用 virtualbox 驱动来创建 Docker Machine,我们可以选择使用 hyperv 驱动。
注意,必须事先在 Hyper-V 管理器中新建一个 外部虚拟交换机 执行下面的命令时,使用 --hyperv-virtual-switch=MY_SWITCH 指定虚拟交换机名称
docker-machine create --driver hyperv --hyperv-virtual-switch=MY_SWITCH vm
Linux
这里主要讲的是Centos 7 下面对docker-machine的使用,为什么要单独做成一个部分,因为我主要用的就是这部分~
安装docker-machine
curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine
chmod +x /tmp/docker-machine
cp /tmp/docker-machine /usr/local/bin/docker-machine
docker-machine version
安装Docker-machine脚本
第一个脚本使您可以在bash提示符中查看活动的机器。 当你使用和在多个Dockerized机器之间切换时,这很方便。 该脚本被称为docker-machine-prompt.bash 。 要下载它,请键入:
wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-prompt.bash -O /etc/bash_completion.d/docker-machine-prompt.bash
要完成上述文件的安装,你必须为设置自定义值PS1在变量.bashrc文件。
vi ~/.bashrc
export PS1='[\u@\h \W$(__docker_machine_ps1 " [%s]")]\$ '
source /etc/bash_completion.d/docker-machine-wrapper.bash
source /etc/bash_completion.d/docker-machine-prompt.bash
source /etc/bash_completion.d/docker-machine.bash
当您激活一台机器,它的名字会被插入到shell提示符
第二个脚本被称为docker-machine-wrapper.bash 。 它增加了use子命令将docker-machine的命令,因此很容易Dockerized机之间切换。 要下载它,请键入
wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-wrapper.bash -O /etc/bash_completion.d/docker-machine-wrapper.bash
第三个脚本被称为docker-machine.bash 。 它增加了bash补全了docker-machine的命令。
wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine.bash -O /etc/bash_completion.d/docker-machine.bash
要应用您迄今为止所做的更改,请关闭,然后重新打开终端。 如果您通过SSH登录到计算机,请退出会话并再次登录。 在命令完成docker和docker-machine命令现在应该工作。 如果它不工作,它很可能是bash-completion包没有安装。 如果是这样,请使用以下命令安装:
yum install bash-completion
配置ssh密钥对
ssh-keygen -t rsa
ssh-copy-id 192.168.1.94
# 上面的192.168.1.94是远端docker主机,是一个拥有操作系统的docker引擎,但不是Dockerized主机
创建Dockerized主机
docker-machine create --driver generic --generic-ip-address=192.168.1.94 docker1
参数详解:
--driver:指定docker-machine所使用的驱动类型,详情请参考官网;Linux与Linux之间的交互使用generic驱动,并且使用generic驱动则必须指定generic驱动主机的地址
官网参考地址:https://docs.docker.com/machine/drivers/
PS:我们登陆到192.168.1.94查看具体配置,在/etc/systemd/system/docker.service.d下文件名是:10-machine.conf
-H tcp://0.0.0.0:2376 使docker daemon接受远程连接
相关命令
docker-machine ls:查看docker-machine管理的Dockerized主机
docker-machine rm –f Dockerized:删除指定的Dockerized主机
docker-machine env Dockerized:查看指定的Dockerized主机环境变量
docker-machine upgrate docker1 docker2:批量更新docker host版本
docker-machine config docker1:查看host的docker daemon配置
docker-machine start/status/restart/kill:对docker host所在的系统的操作
docker-machine scp:docker host之间复制
docker-machine use machine-name:激活docker化主机
docker-machine ip machine-name:显示的主机的IP地址
参考地址:
https://yeasy.gitbooks.io/docker_practice/content/machine/usage.html
https://www.cnblogs.com/lkun/p/7781157.html
Docker三剑客之Machine的更多相关文章
- Docker 三剑客--Machine
Machine 我们知道在多个集群服务环境下,安装管理Docker的容器,要使用的是Docker Swarm,而使用Docker Swarm的情况是在多个集群的服务器已经搭建好Docker环境的情况下 ...
- Docker(五):Docker 三剑客之 Docker Machine
上篇文章Docker(四):Docker 三剑客之 Docker Compose介绍了 Docker Compose,这篇文章我们来了解 Docker Machine . Docker Machine ...
- Docker 三剑客之 Docker Swarm
上一篇:Docker 三剑客之 Docker Compose 阅读目录: Docker Machine 创建 Docker 主机 Docker Swarm 配置集群节点 Docker Service ...
- Docker 三剑客之 Docker Swarm(基于 overlay 组网通信)
相关文章:Docker 三剑客之 Docker Swarm 这一篇主要是对 Docker Swarm 的完善,增加基于 overlay 组网通信,以便 Docker 容器可以跨主机访问. 不同主机间的 ...
- Docker 三剑客
Docker三剑客: Docker-Machine Docker Machine is a tool that lets you install Docker Engine on virtual ho ...
- Docker 三剑客 到 k8s 介绍
一.Docker 三剑客 Docker-Compose Docker-Compose 是用来管理你的容器的,有点像一个容器的管家,想象一下当你的Docker中有成百上千的容器需要启动,如果一个一个的启 ...
- 【云计算】docker三剑客如何支持分布式部署?
This blog will explain how to create multi-container application deployed on multiple hosts using Do ...
- Docker三剑客之Docker Swarm
一.什么是Docker Swarm Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/s ...
- docker——三剑客之Docker Machine
Docker Machine是Docker官方三剑客项目之一,负责使用Docker的第一步,在多种平台上快速安装Docker环境.它支持多种平台,让用户在很短时间内搭建一套Docker主机集群. Ma ...
随机推荐
- python监控模块
pip install psutil 获取内存信息: >>> import psutil >>> mem = psutil.virtual_memory() #获取 ...
- python生成器yield和send
创建生成器 #第一种创建生成器的方法 #使用()创建生成器,如果使用[]则创建列表 a = (x**2 for x in range(1, 5)) #可以通过next一直产生新的数据,直到最后一个报异 ...
- IDEA环境使用Git
推送到Github 在设置中登录github账户 点击OK 将项目交给Git管理 之后项目文件就会变成红色 添加文件到暂存区 点击Add之后,项目文件会变成绿色 添加文件到本地仓库 点击Commit ...
- 0015 行高那些事:line-height
目标 理解 能说出 行高 和 高度 三种关系 能简单理解为什么行高等于高度单行文字会垂直居中 应用 使用行高实现单行文字垂直居中 能会测量行高 3.1 行高测量 行高的测量方法: 3.2 单行文本垂直 ...
- MySQL数据库性能优化:表、索引、SQL等
一.MySQL 数据库性能优化之SQL优化 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础 优化目标 减少 IO 次数IO永远是数据库最容易瓶颈的地 ...
- 【题解】P4585 [FJOI2015]火星商店问题(线段树套Trie树)
[题解]P4585 [FJOI2015]火星商店问题(线段树套Trie树) 语文没学好不要写省选题面!!!! 题目大意: 有\(n\)个集合,每个集合有个任意时刻都可用的初始元素.现在有\(m\)个操 ...
- 你确定你了解什么是linux系统?
1.什么是linux发行版 就Linux的本质来说,它只是操作系统的核心,负责控制硬件.管理文件系统.程序进程等,并不给用户提供各种工具和应用软件.所谓工欲善其事,被必先利其器,一套在优秀的操作系统核 ...
- html 拨打电话
其实就一行 你们别想太复杂 直接在手机中访问 点击a标签(如果你在pc端我就没话说了) <a href="tel:13999999999"></a>
- 《图解机器学习-杉山将著》读书笔记---CH3
CH3 最小二乘学习法 重点提炼 提出最小二乘学习法的缘故: 最小二乘学习法公式 对不同模型进行最小二乘法学习,得到最小二乘公式中的参数theta: 1.线性模型 代入3.1公式,对参数求偏导,偏 ...
- 使用WebUploader上传HTML文件并读取文件
需求: 前端需要上传HTML文件并识别里面有多少个特殊标签并录入到数据库. 思路: 使用WebUploader上传文件,然后使用FileReader接口和DOMParser识别HTML中的特殊标签 资 ...