docker-machine常用
- 什么是Docker Machine?
- Docker Machine默认支持的驱动
- 安装kvm驱动
- 安装和配置Docker Machine
- 环境准备
- node1安装Docker
- node1安装Docker Machine
- 为Docker Machine安装自动补全
- 为Docker Machine准备boot2docker.iso镜像
- 为node2创建machine主机
- 管理远程docker主机
- 常见用法
- 列出可用的机器
- 查看主机状态
- 创建机器
- 查看机器的ip
- 启动机器
- 停止机器
- 重启机器
- 强制关闭机器
- 删除机器
- 进入机器
- 复制文件到主机
什么是Docker Machine?
Docker Machine是一个远程管理工具;
Docker Machine帮助我们在远程的主机上安装和配置Docker
Docker Machine帮助我们在远程的虚拟机(VMWare、VirtualBox、KVM等)上安装和配置Docker
项目地址:https://github.com/docker/machine
参考:https://blog.csdn.net/sl963216757/article/details/118344600
Docker Machine默认支持的驱动
安装kvm驱动
# 下载docker-machine-driver-kvm
sudo curl -L https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.7.0/docker-machine-driver-kvm -o /usr/local/bin/docker-machine-driver-kvm
# 赋予docker-machine-driver-kvm可执行权限
sudo chmod +x /usr/local/bin/docker-machine-driver-kvm
安装和配置Docker Machine
环境准备
各主机之间做好ssh免密
- node1
- node2
node1安装Docker
https://blog.csdn.net/omaidb/article/details/121683661
# 安装yum-utils
yum install -y yum-utils
# 卸载旧版docker-CE
yum -y remove docker \
docker-ce \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 添加docker-ce源 https://docs.docker.com/engine/install/centos/
## docker-ce国内源--aliyun
# yum-config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
## docker-ce官方源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 查看repolist中docker-ce仓库是否添加成功
yum repolist
# 刷新yum缓存
yum clean all && yum makecache
# 安装docker-ce
yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
node1安装Docker Machine
https://github.com/docker/machine
# 下载Docker Machine
curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine
# 赋予可执行权限
chmod +x /tmp/docker-machine
# 复制到可执行目录
sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
# 查看docker-machine版本
docker-machine version
为Docker Machine安装自动补全
安装来源:https://github.com/docker/machine/tree/master/contrib/completion/bash
- 安装bash脚本到
/etc/bash_completion.d/
下
# 下载docker-machine-prompt.bash
wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-prompt.bash -P /etc/profile.d/
# 下载docker-machine-wrapper.bash
wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-wrapper.bash -P /etc/profile.d/
# 下载docker-machine.bash
wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine.bash -P /etc/profile.d/
为Docker Machine准备boot2docker.iso镜像
boot2docker.iso项目地址:https://github.com/boot2docker
# 下载boot2docker.iso
wget -c https://github.com/boot2docker/boot2docker/releases/download/v19.03.12/boot2docker.iso -P $HOME/.docker/machine/cache/
为node2创建machine主机
在node1
上执行创建node2_machine
主机的命令
# 创建machine主机
## --driver:要在目标主机创建docker的驱动程序
## --generic-ip-address:目标地址
## <server2>:创建的主机的名称
# docker-machine create 主机名
docker-machine create --driver generic --generic-ip-address 172.25.2.2 server2
管理远程docker主机
# 加载docker-machine变量
## 会加载docker的远程主机变量,用于管理远程docker
docker-machine env
docker-machine env 远程docker主机名
# 取消docker-machine变量
## 将docker引擎指向本地docker
docker-machine env -u
# 查看当前指向的docker引擎
echo $DOCKER_HOST
## 回显
tcp://203.0.113.81:2376
常见用法
https://www.runoob.com/docker/docker-machine.html
参数 | 解释 |
---|---|
config | 查看当前激活状态 Docker 主机的连接信息 docker-machine config |
create | 创建 Docker 主机 |
env | 显示连接到某个主机需要的环境变量 docker-machine env |
inspect | 以 json 格式输出指定Docker的详细信息 docker-machine inspect |
ip | 获取指定 Docker 主机的地址 示例: 查看主机的IP docker-machine ip |
kill | 直接杀死指定的 Docker 主机 |
ls | 列出所有的管理主机 |
active | 获取当前活动的 Docker Machine 主机 示例: 显示当前的活动主机 docker-machine active |
provision | 重新配置指定主机 |
regenerate-certs | 为某个主机重新生成 TLS 信息 |
restart | 重启指定的主机 |
rm | 删除某台 Docker 主机,对应的虚拟机也会被删除 |
ssh | 通过 SSH 连接到主机上,执行命令 |
scp | 在 Docker 主机之间以及 Docker 主机和本地主机之间通过 scp 远程复制数据 |
mount | 使用 SSHFS 从计算机装载或卸载目录 |
start | 启动一个指定的 Docker 主机,如果对象是个虚拟机,该虚拟机将被启动 |
status | 获取指定 Docker 主机的状态(包括:Running、Paused、Saved、Stopped、Stopping、Starting、Error)等 |
stop | 停止一个指定的 Docker 主机 |
upgrade | 将一个指定主机的 Docker 版本更新为最新 |
url | 获取指定 Docker 主机的监听 URL |
version | 显示 Docker Machine 的版本或者主机 Docker 版本 |
# 重新配置现在主机
docker-machine provision
# 为主机重新生成证书
docker-machine regenerate-certs
# 升级主机的docker服务到最新版本
docker-machine upgrade
# 查看docker-machine版本
docker-machine version
列出可用的机器
# 列出所有可用的机器
docker-machine ls
查看主机状态
# 查看主机的状态
docker-machine status
创建机器
# 创建一台名为 test 的机器
## --driver:指定用来创建机器的驱动类型,这里是 virtualbox
docker-machine create --driver virtualbox test
查看机器的ip
# 查看机器的ip
docker-machine ip test
启动机器
# 启动机器
docker-machine start test
停止机器
# 停止机器
docker-machine stop test
重启机器
# 重启主机
docker-machine restart vm1
强制关闭机器
# 强制关闭一个主机
docker-machine kill vm1
删除机器
# 删除主机
docker-machine rm vm1
进入机器
# # 以SSH的方式连接到主机上
docker-machine ssh vm1
复制文件到主机
# 从本地主机复制文件到远程 Docker Machine 主机
docker-machine scp <本地文件路径> <远程主机名称>:<目标路径>
# 从远程 Docker Machine 主机复制文件到本地主机
docker-machine scp <远程主机名称>:<远程文件路径> <本地目标路径>