Docker(二)docker-machine创建虚拟机

一、利用docker-machine,在本地创建Linux虚拟机

docker-machine(工具)会随着Docker.dmg的安装自动安装好,docker-machine也可以做为工具单独安装。

本质上docker-machine是一个虚拟机管理工具,它通过创建一个安装好docker的虚拟机(支持VirtualBox,DigitalOcean,EC2等),并设置对应的环境变量(DOCKER_HOST,DOCKER_MACHINE_NAME等),使得本地的docker工具获得透明远程操作虚拟机的能力。从而使本身不支持docker的Windows和Mac系统能够直接使用docker命令。

安装好docker后,进入终端查看docker-machine版本:

docker-machine -version

安装Linux虚拟机(该命令安装好虚拟机后,会自动在虚拟机上安装Docker服务,本地主机需要安装好VirtualBox软件):

docker-machine create demo

安装成功后输出:

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 demo

安装完成后,查看VirtualBox软件发现已经出现一台名为demo的虚拟机。

进入本机终端,列出当前已经创建或正在运行的虚拟机:

docker-machine ls

输出:

NAME   ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
demo   -        virtualbox   Running   tcp://192.168.99.100:2376           v18.04.0-ce 

可以看到已经出现了名为demo的虚拟机

进入到demo机器里面:

docker-machine ssh demo

还有其他docker-machine命令,使用命令提示:

扫描二维码关注公众号,回复: 2576123 查看本文章
# 提示所有命令
docker-machine --help

二、本地docker client连接虚拟机的docker daemon

在本地关闭docker服务后,运行docker version,输出:

Client:
 Version:   18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built: Wed Mar 21 23:06:22 2018
 OS/Arch:   darwin/amd64
 Experimental:  false
 Orchestrator:  swarm
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

可以看到此时本机的docker client无法连接到本机的docker deamon

进入本机终端,打印出demo虚拟机中的环境变量:

docker-machine env demo

输出:

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/xiangshaopeng/.docker/machine/machines/pengwork1"
export DOCKER_MACHINE_NAME="pengwork1"
# Run this command to configure your shell: 
# eval $(docker-machine env pengwork1)

执行命令:

eval $(docker-machine env demo)

该命令的意思就是把$(docker-machine env demo)的输出当做shell命令在当前shell下执行。最终的结果就是当前shell下多了几个环境变量,docker client就是靠着这些环境变量来决定和docker daemon交互的行为的。

最后在终端执行docker version输出:

Client:
 Version:   18.03.0-ce
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built: Wed Mar 21 23:06:22 2018
 OS/Arch:   darwin/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:  18.04.0-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   3d479c0
  Built:    Tue Apr 10 18:23:35 2018
  OS/Arch:  linux/amd64
  Experimental: false

此时本地docker client已经成功的连接到了demo虚拟机中的docker daemon

关于docker-machine连接阿里云服务器的相关步骤,请阅读下篇博客:
《Docker(三)docker-machine连接云服务器》

猜你喜欢

转载自blog.csdn.net/xsp_happyboy/article/details/80007957
今日推荐