从一台 Windows 10 上访问另一台 Windows 10上创建的Docker虚拟机
2018-01-23 17:11
651 查看
访问
https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows
获取
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
获取
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe.sha256sum
下载
下载
校验下载文件
在第一台
默认安装
同样的在第二台
在第二台
在第二台
成功创建后在第二台
把文件复制到第一台
其中第一台
其中第一台
然后编辑
此时在
即可看到识别出这台设备
如果希望使用
在第一台
可以看到运行结果
Docker for Windows Installer的下载页面
https://docs.docker.com/docker-for-windows/install/#download-docker-for-windows
获取
Docker for Windows Installer的下载链接
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
获取
Docker for Windows Installer的摘要校验链接
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe.sha256sum
下载
Docker for Windows Installer
Invoke-WebRequest https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe -OutFile ~\Downloads\"Docker for Windows Installer.exe"
下载
Docker for Windows Installer的摘要校验
Invoke-WebRequest https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe.sha256sum -OutFile ~\Downloads\"Docker for Windows Installer.exe.sha256sum"
校验下载文件
Compare-Object (Get-FileHash ~\Downloads\"Docker for Windows Installer.exe" -Algorithm SHA256).Hash (Get-Content ~\Downloads\"Docker for Windows Installer.exe.sha256sum").Substring(0,64) -IncludeEqual
在第一台
Windows 10上运行
Docker for Windows Installer
~\Downloads\"Docker for Windows Installer.exe"
默认安装
Docker for Windows会自动启动,本例不使用自动启动,可以关闭
Docker for Windows的自动启动选项
同样的在第二台
Windows 10上运行
Docker for Windows Installer,本例不使用自动启动,可以关闭
Docker for Windows的自动启动选项
在第二台
Windows 10上的
Hyper-V中创建虚拟交换机,设置名称为
myswitch
在第二台
Windows 10上创建
Docker虚拟机
docker-machine -D create -d hyperv --hyperv-virtual-switch "myswitch" --hyperv-memory "576" s1-vm1
成功创建后在第二台
Windows 10上可以看到文件夹结构为
~\.docker\machine ~\.docker\machine\cache ~\.docker\machine\cache\boot2docker.iso ~\.docker\machine\certs ~\.docker\machine\certs\ca.pem ~\.docker\machine\certs\ca-key.pem ~\.docker\machine\certs\cert.pem ~\.docker\machine\certs\key.pem ~\.docker\machine\machines ~\.docker\machine\machines\s1-vm1 ~\.docker\machine\machines\s1-vm1\s1-vm1\(内部文件略) ~\.docker\machine\machines\s1-vm1\boot2docker.iso ~\.docker\machine\machines\s1-vm1\ca.pem ~\.docker\machine\machines\s1-vm1\cert.pem ~\.docker\machine\machines\s1-vm1\config.json ~\.docker\machine\machines\s1-vm1\disk.vmd ~\.docker\machine\machines\s1-vm1\disk_(文件名略).avhd ~\.docker\machine\machines\s1-vm1\id_rsa ~\.docker\machine\machines\s1-vm1\id_rsa.pub ~\.docker\machine\machines\s1-vm1\key.pem ~\.docker\machine\machines\s1-vm1\server.pem ~\.docker\machine\machines\s1-vm1\server-key.pem ~\.docker\daemon.json
把文件复制到第一台
Windows 10上,文件夹结构为
~\.docker\machine ~\.docker\machine\cache ~\.docker\machine\s1-certs ~\.docker\machine\s1-certs\ca.pem ~\.docker\machine\s1-certs\ca-key.pem ~\.docker\machine\s1-certs\cert.pem ~\.docker\machine\s1-certs\key.pem ~\.docker\machine\machines ~\.docker\machine\machines\s1-vm1 ~\.docker\machine\machines\s1-vm1\ca.pem ~\.docker\machine\machines\s1-vm1\cert.pem ~\.docker\machine\machines\s1-vm1\config.json ~\.docker\machine\machines\s1-vm1\id_rsa ~\.docker\machine\machines\s1-vm1\id_rsa.pub ~\.docker\machine\machines\s1-vm1\key.pem ~\.docker\machine\machines\s1-vm1\server.pem ~\.docker\machine\machines\s1-vm1\server-key.pem ~\.docker\daemon.json
其中第一台
Windows 10上的
~\.docker\machine\s1-certs对应于第二台
Windows 10上的
~\.docker\machine\certs,文件夹改名的原因在于第一台
Windows 10以后创建虚拟机的时候会使用这个文件夹。
其中第一台
Windows 10上的
~\.docker\machine\machines\s1-vm1复制自第二台
Windows 10上的对应文件夹的对应文件,其他虚拟机文件就不用复制了
然后编辑
config.json文件,配置文件中出现的所有的文件路径都修改为对应的完整的文件路径,有些可能不需要了,不过也一起顺手改了吧。修改其中的
DriverName为
generic
"DriverName": "generic",
此时在
PowerShell中运行命令
docker-machine ls
即可看到识别出这台设备
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS s1-vm1 * generic Running tcp://192.168.1.100:2376 v18.01.0-ce
如果希望使用
docker命令,还需要使用
docker-machine命令生成环境变量并运行,以便于后续的的
docker命令直接使用,注意此处为了解决中文问题做了转码,
foreach ($line in (docker-machine env s1-vm1)) { [System.Text.Encoding]::GetEncoding("utf-8").GetString([System.Text.Encoding]::GetEncoding("gb2312").GetBytes($line)) | Invoke-Expression }
在第一台
Windows 10上运行祖传开光祈福命令
docker run hello-world
可以看到运行结果
Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world ca4f61b1923c: Pull complete Digest: sha256:66ef312bbac49c39a89aa9bcc3cb4f3c9e7de3788c944158df3ee0176d32b751 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://cloud.docker.com/ For more examples and ideas, visit: https://docs.docker.com/engine/userguide/[/code]
在第二台Windows 10上运行如上生成环境变量的命令,然后查看docker ps -a
可以看到运行结果CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4bf2e5bd62dc hello-world "/hello" 15 minutes ago Exited (0) 15 minutes ago kind_knuth
这就是在第一台Windows 10上调用命令的结果
相关文章推荐
- Windows上访问虚拟机上的docker容器
- 虚拟机安装docker并开放远程访问,windows宿主主机pycharm使用python docker api进行访问
- windows 10安装hyper-v,并创建虚拟机
- 从Windows 10共享文件夹给Docker虚拟机中的Docker的神奇bug
- Windows下,在VirtualBox上创建一台虚拟机
- 从一台 Windows 10 上共享文件夹到Docker中的Volume卷
- 10: docker 主机远程访问另一台docker 主机
- 在使用 Intel E5 v2 系列处理器的 ESXi 5.x 上运行时,Windows 2008 R2 和 Solaris 10(64 位)虚拟机出现蓝屏或内核不稳定。 (2094336)
- 图说:Windows 8的Hyper-v创建虚拟机
- VMWare-Windows虚拟机访问宿主Ubuntu共享目录
- 【Windows 10 应用开发】使用快捷访问键
- windows无法访问vmware搭建好虚拟机linux web服务器
- 在Docker Toolbox 终端中使用 vboxmanage.exe 程序在宿主机和虚拟机之间创建共享目录
- 2.《深入理解Java虚拟机》Hotspot虚拟机中的对象创建与访问定位
- windows 创建服务提示失败 5 拒绝 访问拒绝
- 批量创建HyperV虚拟机--Windows 2012已验证
- fedora10 samba 配置 windows 访问linux
- 虚拟机的安装创建和匿名everyone的互通访问
- Ubuntu虚拟机下安装mysql并在windows下通过SQLyog访问