Docker-compose和Docker machine是Docker容器管理的工具,本文简单介绍了Docker machine的使用,加深对Docker管理的理解。
2、Docker Machine
2.1 Docker Machine简介
Docker Machine可以在虚拟主机上安装Docker,并可以使用docker-machine命令来管理主机。使用docker-machine命令,可以启动、检查、停止和重新启动托管主机,也可以升级Docker客户端和守护程序,以及配置Docker客户端与主机进行通信。
2.2 安装Dcoker Machine
1)安装docker-machine
[root@tango-01 tmp]# curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` -o /tmp/docker-machine
[root@tango-01 tmp] chmod +x /tmp/docker-machine
[root@tango-01 tmp] sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
2)查看docker-machine版本:
[root@tango-01 /]# docker-machine version
docker-machine version 0.16.2, build bd45ab13
2.3 Docker Machine使用
- 系统:Win10
- 虚机:VMware Workstation 12
- 虚机系统:Centos7.0
- Docker:19.03.13
- Driver:VirtualBox 6.1
1)安装virtualbox
#更新yum源
[root@tango-01 yum.repos.d]# vi /etc/yum.repos.d/virtualbox.repo
[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
#安装VirtualBox
[root@tango-01 yum.repos.d]# yum update
[root@tango-01 yum.repos.d]# yum install VirtualBox-6.1
2)列出可用的机器
[root@tango-01 /]# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
3)创建一台名为 test 的机器,driver使用virtualbox
Driver的选择可以参考官网:https://docs.docker.com/machine/drivers/
[root@tango-01 /]# docker-machine create --driver virtualbox mymachine
Running pre-create checks...
Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory"
需开启虚拟化选项,同时内存设置至少为2G
执行如下命令创建:
[root@tango-01 ~]# docker-machine create --driver virtualbox mymachine
[root@tango-01 cache]# docker-machine create --driver virtualbox mymachine
Running pre-create checks...
(mymachine) Unable to get the latest Boot2Docker ISO release version: Get https://api.github.com/repos/boot2docker/boot2docker/releases/latest: EOF
Creating machine...
(mymachine) Copying /root/.docker/machine/cache/boot2docker.iso to /root/.docker/machine/machines/mymachine/boot2docker.iso...
(mymachine) Creating VirtualBox VM...
(mymachine) Creating SSH key...
(mymachine) Starting the VM...
(mymachine) Check network to re-create if needed...
(mymachine) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env mymachine
[root@tango-01 cache]# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
mymachine - virtualbox Running tcp://192.168.99.100:2376 v19.03.12
注:可以下载boot2docker.iso文件到目录/root/.docker/machine/cache/,下载地址为https://github.com/boot2docker/boot2docker/releases/download/v19.03.12/boot2docker.iso
3)查看机器的ip
[root@tango-01 cache]# docker-machine ip mymachine
192.168.99.100
4)停止机器
[root@tango-01 cache]# docker-machine stop mymachine
Stopping "mymachine"...
Machine "mymachine" was stopped.
[root@tango-01 cache]# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
mymachine - virtualbox Stopped Unknown
5)启动机器
[root@tango-01 cache]# docker-machine start mymachine
Starting "mymachine"...
(mymachine) Check network to re-create if needed...
(mymachine) Waiting for an IP...
Machine "mymachine" was started.
Waiting for SSH to be available...
Detecting the provisioner...
Started machines may have new IP addresses. You may need to re-run the `docker-machine env` command.
[root@tango-01 cache]# docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
mymachine - virtualbox Running tcp://192.168.99.100:2376 v19.03.12
[root@tango-01 cache]# docker-machine env mymachine
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/root/.docker/machine/machines/mymachine"
export DOCKER_MACHINE_NAME="mymachine"
# Run this command to configure your shell:
# eval $(docker-machine env mymachine)
6)进入机器
[root@tango-01 cache]# docker-machine ssh mymachine
( '>')
/) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_--_-\) www.tinycorelinux.net
docker@mymachine:~$
7)docker-machine 命令参数说明
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: 显示帮助信息
参考资料:
转载请注明原文地址:https://blog.csdn.net/solihawk/article/details/121485052
文章会同步在公众号“牧羊人的方向”更新,感兴趣的可以关注公众号,谢谢!