1. 程式人生 > >Docker for windows on VMware

Docker for windows on VMware

工作環境

作業系統:Windows 10 Pro x64

Hyper-V:已解除安裝。

VMware:已安裝。

Virtual Box:無安裝。

前言

鑑於Hyper-V在Windows桌面系統下的"弱雞"表現,包括不僅限於"網路"方面都很"辣雞",各種不相容的原因。

我決定(禁用/解除安裝)Hyper-V,卻又不想用其預設的Virtual Box,於是改成最為喜愛的VMware Workstation,作為Docker machine的driver。

以上對於三個虛擬機器的好與壞,只是個人親身使用後的感受,或許沒有全面瞭解過它們的優良之處,請勿噴,可以指教,謝謝。

然而Docker官方並不支援VMware Workstation驅動,不過我從Docker官方指導文件中找到第三方支援:

https://docs.docker.com/machine/drivers

正文

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:/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 1 fi vmrun.exe list | grep "${VM}" &> /dev/null VM_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}" fi STEP="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}" fi STEP="Setting env" eval "$(${DOCKER_MACHINE} env --shell=bash ${VM})" STEP="Finalize" clear cat << EOF ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""\___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ \______ o __/ \ \ __/ \____\_______/ EOF echo -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" echo cd docker () { MSYS_NO_PATHCONV=1 docker.exe "[email protected]" } export -f docker if [ $# -eq 0 ]; then echo "Start interactive shell" exec "$BASH" --login -i else echo "Start shell with command" exec "$BASH" -c "$*" fi

3.開啟git-bash,輸入以下命令:

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等等....

PS:此處,如果你進行了3.2.2或3.4步驟的操作,可以不需要進行3.5步驟的操作。

直接使用docker命令就可以正常使用docker開發了。

 2017.09.20 更新了start.sh的錯誤

參考資料

下載資源彙總

相關推薦

Docker for windows on VMware

工作環境 作業系統:Windows 10 Pro x64 Hyper-V:已解除安裝。 VMware:已安裝。 Virtual Box:無安裝。 前言 鑑於Hyper-V在Windows桌面系統下的"弱雞"表現,包括不僅限於"網路"方面都很"辣雞",各種不相容的原因。 我決定(禁用/解除安裝

win 10系統docker for windowsvmware關於Hyper-v問題

背景 因為需要調研 InfluxDb 和 Grafana,貪圖方便一開始是本地Windows安裝,被boss否決之後,嘗試Linux版本的安裝和部署。Windows版本安裝教程傳送門: 安裝docker 安裝docker for windows,下載地址: ht

Docker for Windows 使用 VMware WorkStation

一.前言 Docker for Windows 不同於 Docker Toolbox。Docker for Windows 對系統的要求至少為Windows 10專業版,因為它需要Hyper-V的支援,而Dockbox Toolbox使用Oracle Virtual Box而不是Hyper-V 。使用過VMw

Docker for Windows

5.6 load for get cnblogs -type none nload 一個 下載docker     for windows: docker      安裝,win鍵+R => cmd => docker     

Docker for windows : 安裝Redis

exec test dock -- exe repos sql Go image 一、創建並運行容器 docker run -d -it --name redis d4f259423416 PS C:\Users\K-Jso> docker images -

使用WSL連接Docker for Windows

general 6.0 ssl ole out 電腦 安裝docker ali nta 在Windows下安裝Docker for Windows Cotana搜索功能,打開Windows的Hype-v功能(註:會影響Virtualbox和Vmware的使用)並重啟電腦。

docker for windows 使用mssql2017

bsp localhost 數據庫 mss microsoft 設置 doc lin dock 確實有些坑,本來之前坑都踩過了,但是時間一久就忘記了,這次換電腦又都踩了一遍。 幾個要點(坑): 1.docker安裝時默認就好。然後C盤必須設置共享,否則後面做文件夾掛載時

Kitematic - VirtualBox is not installed. Docker for windows 10

com box spa issues delet virt docke pan win Kitematic - VirtualBox is not installed. Docker for windows 10 https://github.com/docker/kit

Docker for Windows安裝與Linux+PHP開發環境搭建(二)

Docker for Windows安裝與Linux+PHP開發環境搭建(二) 上一篇講了docker安裝與環境搭建的步驟,這一次主要是介紹過程中遇到的錯誤情形及其錯誤處理方法: 1).執行docker pull local.registry.com:5000/php 或其他連線本地

Docker for Windows安裝與Linux+PHP開發環境搭建(一)

Docker是什麼? 簡單得來說,Docker是一個由GO語言寫的程式執行的“容器”(Linux containers, LXCs); 目前雲服務的基石是作業系統級別的隔離,在同一臺物理伺服器上虛擬出多個主機。Docker則實現了一種應用程式級別的隔離; 它改變我們基本的開發、操作單元,

docker學習筆記:簡單構建Dockerfile【Docker for Windows

參考與入門推薦:https://www.cnblogs.com/ECJTUACM-873284962/p/9789130.html#autoid-0-0-9 最近學習docker,寫一個簡單構建Dockerfile的筆記。 我的系統:Windows 10 Docker版本:Docker for Win

Net core 2.x - docker(for windows)-linux配置及項目發布

區別 默認 context aml 配置說明 nds cor 開篇 -- 將.net core2.x+sqlserver項目發布到docker.呵呵,操作很自如,如下. 1.羅嗦幾句 在跑起來之前浪費了不少時間和精力,起初是將docker for windows的環境轉

Windows 10 安裝 Docker for Windows

Docker for Windows是Docker社群版(CE)應用程式。 Docker for Windows安裝包包括在Windows系統上執行Docker所需的一切。 本主題介紹了預安裝注意事項,以及如何下載和安裝Docker for Windows。 下載Docker for Window

dockerToolbox和docker for windows的區別

前言: 我們先來補充一下關於hyper-v 虛擬機器與virtualbox和VMware的知識 一:VMware工作站(VMware Workstation)是VMware公司銷售的商業軟體產品之一。該工作站軟體包含一個用於英特爾x86相容容電腦的虛擬機器套裝,其允許使用者同時建立和執行

Docker for Windows 安裝

前言: 環境:windows10專業版 64位 正文: 官方下載地址:https://hub.docker.com/editions/community/docker-ce-desktop-windo 勾選 use windows containers instead of linux contain

Docker for Windows (Linux Container) 使用代理

前提: 在國內環境,因為某種原因,使用docker下載image非常緩慢。因此,為了更好的下載效率,需要使用代理。 所需條件: 1. VPS(offshore) 2. ss 遇到的坑:   這樣設定後,發現並沒有生效。理由如下: docker login u

Docker for Windows 使用入門

歡迎來到Docker for Windows!   Docker是用於建立Docker應用程式的完整開發平臺,Docker for Windows是在Windows系統上開始使用Docker的最佳方式。     如果你沒有安裝Docker for Windows,請閱讀這篇文章:

Docker for Windows使用簡介

在上一篇文章中,通過演練指導的方式,介紹了在Docker中執行ASP.NET Core Web API應用程式的過程。本文將介紹Docker for Windows的使用。 先決條件 前兩週時間,Docker釋出了Docker for Windows的正式版,於是就可以在

新手超詳細記錄:Docker for Windows打包製作tomcat映象並部署java web專案

專案基本情況 我用的是普通的java web專案,其中採用了struts框架,沒有main函式,Makefile實在寫不出來,因此spring框架的那種打包docker的方式並不適用。 開發工具用的是MyEclipse10,平常在本地執行的時候就是部署到

Docker for Windows 10

總結:win10使用docker for windows版只適合Hyper-V模擬機 具體參考下面 前言 大概是兩年前,稍微玩了一點點的 Docker,不過當時的 Docker ,底層還是使用 Linux 核心, 所以不用說,自然也只有 Linux 的相關應用可以完美整合;所有很多寫 node.js