Docker for windows on VMware

简介:

前言

鉴于Hyper-V在Windows桌面系统下的"弱鸡"表现,包括不仅限于"网络"方面都很"辣鸡",各种不兼容的原因。

我决定(禁用/卸载)Hyper-V,却又不想用其默认的Virtual Box,于是改成最为喜爱的VMware Workstation,作为Docker machine的driver。

以上对于三个虚拟机的好与坏,只是个人亲身使用后的感受,或许没有全面了解过它们的优良之处,请勿喷,可以指教,谢谢。

然而Docker官方并不支持VMware Workstation驱动,不过我从Docker官方指导文档中找到第三方支持:ht t p s : / / d o cs .d o c k e r .c o    m/ m ac h in e / d r iv e rs

 

正文

访问该驱动的第三方支持,h t t p s : / / g i t h u b . c om / p e c i go n z al o / d oc k e r - ma c h in e - v mw a r e w or k st a t i o n / re l  ea ses/ lates t 

下载二进制文件 -- docker-machine-driver-vmwareworkstation.exe,复制到docker-machine.exe的同级目录下,注意:如果你是

1.通过InstallDocker.msi安装的,复制到C:\Program Files\Docker\Docker\resources\bin下。

2.通过DockerToolbox.exe安装的,复制到C:\Program Files\Docker Toolbox下。

2.1如果是通过DockerToolbox.exe安装的,还需要修改C:\Program Files\Docker Toolbox\start.sh脚本文件内容为:

#!/bin/bash

export PATH="$PATH:/mnt/c/Program Files (x86)/VMware/VMware Workstation"trap '[ "$?" -eq 0 ] || read -p "Looks like something went wrong in step ′$STEP′... Press any key to continue..."' EXIT

VM=${DOCKER_MACHINE_NAME-default}
DOCKER_MACHINE=./docker-machine.exe

BLUE='\033[1;34m'GREEN='\033[0;32m'NC='\033[0m'if [ ! -f "${DOCKER_MACHINE}" ]; then
  echo "Docker Machine is not installed. Please re-run the Toolbox Installer and try again."
  exit 1fivmrun.exe list | grep \""${VM}"\" &> /dev/nullVM_EXISTS_CODE=$?set -e

STEP="Checking if machine $VM exists"if [ $VM_EXISTS_CODE -eq 1 ]; then
  "${DOCKER_MACHINE}" rm -f "${VM}" &> /dev/null || :  rm -rf ~/.docker/machine/machines/"${VM}"
  #set proxy variables if they exists  if [ -n ${HTTP_PROXY+x} ]; then
    PROXY_ENV="$PROXY_ENV --engine-env HTTP_PROXY=$HTTP_PROXY"
  fi
  if [ -n ${HTTPS_PROXY+x} ]; then
    PROXY_ENV="$PROXY_ENV --engine-env HTTPS_PROXY=$HTTPS_PROXY"
  fi
  if [ -n ${NO_PROXY+x} ]; then
    PROXY_ENV="$PROXY_ENV --engine-env NO_PROXY=$NO_PROXY"
  fi  
  "${DOCKER_MACHINE}" create -d vmwareworkstation $PROXY_ENV "${VM}"fiSTEP="Checking status on $VM"VM_STATUS="$(${DOCKER_MACHINE} status ${VM} 2>&1)"if [ "${VM_STATUS}" != "Running" ]; then
  "${DOCKER_MACHINE}" start "${VM}"
  yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}"fiSTEP="Setting env"eval "$(${DOCKER_MACHINE} env --shell=bash ${VM})"STEP="Finalize"clearcat << EOF


                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/EOFecho -e "${BLUE}docker${NC} is configured to use the ${GREEN}${VM}${NC} machine with IP ${GREEN}$(${DOCKER_MACHINE} ip ${VM})${NC}"echo "For help getting started, check out the docs at https://docs.docker.com"echocd

docker () {
  MSYS_NO_PATHCONV=1 docker.exe "$@"}
export -f dockerif [ $# -eq 0 ]; then
  echo "Start interactive shell"
  exec "$BASH" --login -ielse
  echo "Start shell with command"
  exec "$BASH" -c "$*"fi

3.打开cmd / git-bash / powershell都行,输入以下命令:

3.1.docker-machine ls

检查是否有machine实例,如果有,请自行考虑是否卸载它。

3.2.docker-machine stop dev && docker-machine rm dev

暂停并且卸载NAME为dev的machine实例。此处的dev每个人都不同,可能是default或其它,具体看docker-machine ls命令列出来的数据。

3.2.1.docker-machine create --driver=vmwareworkstation dev

创建一个名称为dev的machine实例。

3.2.2.当然了,如果你做了2.1步骤的动作,你也可以不做3.2.1步骤的动作。

而是直接在你的桌面上找到一个名为"Docker Quickstart Terminal"的蓝色Docker命令行图标

,并且双击运行它。

首次运行它时,会检查你是否有创建一个名为"default"的实例,如果有,则直接启动命令操作界面,如果没有,则帮你创建并且初始化一个名为"default"的实例,并且active为默认实例。

当有一个默认的machine实例后,你通过docker命令所做的操作,都是对默认实例的操作。

3.3.docker-machine ls

查看实例列表信息,在这里你可以看到实例的状态信息,包括版本,IP,名称等。

3.4.eval "$(docker-machine env dev)" && docker-machine active

此处两个命令在同一个shell窗口分开执行,或一并执行都可以。

eval "$(docker-machine env dev)"这句话的意思是加载名为"dev"的machine实例的环境变量到当前的shell窗口。

docker-machine active的作用是,从上一句话加载进来的环境变量中获取到要激活的machine实例名称,并且激活它。

激活指定的machine实例为默认实例。一个docker只能有一个被激活的默认实例。

3.5.docker-machine ssh dev

连接到machine实例之后,你可以使用docker命令进行任何受支持的操作...

例如docker push,pull等等....


本文转自lzwxx 51CTO博客,原文链接:http://blog.51cto.com/13064681/1944336


相关文章
|
4月前
|
Linux 虚拟化 Docker
Windows10安装Docker Desktop(大妈看了都会)
Windows10安装Docker Desktop(大妈看了都会)
780 2
|
15天前
|
Cloud Native Devops 虚拟化
Docker和VMWare有什么不同
【10月更文挑战第18天】Docker和VMWare有什么不同
|
5月前
|
虚拟化 Docker Windows
Docker 和 vmware 共存工作
Docker 和 vmware 共存工作
238 9
|
15天前
|
存储 持续交付 虚拟化
Docker与VMWare优缺点
【10月更文挑战第18天】Docker与VMWare优缺点
|
3月前
|
PHP 虚拟化 Docker
Docker——windows10安装Docker Desktop
Docker——windows10安装Docker Desktop
294 1
|
3月前
|
Linux 虚拟化 Docker
深入了解Windows安装Docker
【8月更文挑战第22天】深入了解Windows安装Docker
157 0
|
3月前
|
Java Linux Docker
【zookeeper 第二篇章】windows、linux、docker-compose 安装 zookeeper
本文介绍Zookeeper在不同环境下的安装方法。Linux安装需备好JDK,下载并解压Zookeeper后,复制`zoo_sample.cfg`为`zoo.cfg`,最后运行`zkServer.sh start`启动服务。Windows安装类似,通过`zkServer.bat`启动。使用Docker-Compose则需编写配置文件,并通过`docker-compose up -d`后台启动容器。
68 0
|
3月前
|
Docker Windows 容器
Windows 2016 安装 Docker
Windows 2016 安装 Docker
24 0
|
3月前
|
Linux Docker Windows
Windows——Docker拉取Windows Server镜像
Windows——Docker拉取Windows Server镜像
128 0
|
5月前
|
应用服务中间件 Docker Windows
windows基于Docker安装并启动Tomcat(解决404)
windows基于Docker安装并启动Tomcat(解决404)
191 1