本文最后更新于:2024年3月18日 凌晨
Docker Machine
- Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。
- Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker
- Docker Machine 管理的虚拟主机可以是机上的,也可以是云供应商,如阿里云,腾讯云,AWS,或 DigitalOcean
- 使用 docker-machine 命令,您可以启动,检查,停止和重新启动托管主机,也可以升级 Docker 客户端和守护程序,以及配置 Docker 客户端与您的主机进行通信。

安装
- 安装 Docker Machine 之前你需要先安装 Docker
- Docker Machine 可以在多种平台上安装使用,包括 Linux,MacOS 以及 windows
Linux
1 2 3 4
| $ base=https://github.com/docker/machine/releases/download/v0.16.0 && curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine && sudo mv /tmp/docker-machine /usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
|
macOS
1 2 3 4
| $ brew install docker-machine
$ brew install --cask virtualbox
|
常用命令
ls
create
1
| docker-machine ceate [machine_name]
|
--engine-opt dns=114.114.114.114
配置 Docker 的默认 DNS
--engine-registry-mirror https://hub-mirror.c.163.com
配置 Docker 的仓库镜像。
--virtualbox-memory 2048
配置主机内存。
--virtualbox-cpu-count 2
配置主机 CPU
- 更多参数请使用
docker-machine create --driver virtualbox --help
命令查看。
xhyve 驱动
1 2 3 4 5
| $ brew install docker-machine-driver-xhyve
$ sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve $ sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
|
实例
1 2 3 4 5 6 7 8 9
| docker-machine create \ -d xhyve \ # --xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso \ --engine-opt dns=114.114.114.114 \ --engine-registry-mirror https://hub-mirror.c.163.com \ --xhyve-memory-size 2048 \ --xhyve-rawdisk \ --xhyve-cpu-count 2 \ xhyve
|
- -d,–driver:指定用来创建机器的驱动类型。
注意:非首次创建时建议加上 --xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso
参数,避免每次创建时都从 GitHub 下载 ISO 镜像。
ip
1
| $ docker-machine ip [machine_name]
|
start
1
| $ docker-machine start [machine_name]
|
stop
1
| $ docker-machine stop [machine_name]
|
env
- 设置环境变量,使shell的docker命令应用与指定的machine
1
| $ docker-machine env [OPTIONS] [arg...]
|
--unset, -u
:Unset variables instead of setting them
ssh
1
| $ docker-machine ssh [machine_name]
|
scp
1
| $ docker-machine scp /localpath/ machinename:/machinepath
|
实例
1
| docker-machine scp ~/Downloads/compose.yml manager:/home/docker
|
docker-machine命令
- active:查看当前激活状态的 Docker 主机。
- config:查看当前激活状态 Docker 主机的连接信息。
- creat:创建 Docker 主机。
- env:显示连接到某个主机需要的环境变量。
- inspect: 以 json 格式输出指定Docker的详细信息。
- ip: 获取指定 Docker 主机的地址。
- kill: 直接杀死指定的 Docker 主机。
- ls: 列出所有的管理主机。
- 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 版本。
- help: 显示帮助信息。