1. 程式人生 > >docker學習(2) mac中docker-machine使用vmware fusion以及配置國內映象加速

docker學習(2) mac中docker-machine使用vmware fusion以及配置國內映象加速

一、前言

先回顧下上一節建立docker-machine的過程,預設情況下docker toolbox中的docker-machine使用virtual box建立虛擬機器,KI首次啟動時建立虛擬機器的過程,大致相當於下面這條命令:

docker-machine create --driver virtualbox default

輸出如下:

Running pre-create checks...
Creating machine...
(default) Copying /Users/yjmyzz/.docker/machine/cache/boot2docker.iso to /Users/yjmyzz/.docker/machine/machines/default2/boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Machine is running, waiting for SSH to be available...
Detecting operating system of created instance...
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 Docker to this machine, run: docker-machine env default

其大致過程為從網上下載boot2docker.iso這個檔案,然後利用它建立VirtualBox VM,然後生成SSH key(方便免密碼登入到虛擬機器)、分配IP之類,建立完以後,可以用:

docker-machine env default

檢視虛擬機器default的狀態,如果要刪除該虛擬機器,直接

rm -rf ~/.docker/machine/machines/default

現在才開始本文的正題:

二、使用vmware做為docker machine

對於已經在mac上安裝了vmwarefusion的同學來講,為了使用docker強制安裝一個virtualbox有點多餘,其實docker支援vmwarefusion,只要把driver改一下就行了,命令如下:

docker-machine create --driver vmwarefusion default

建立完成後,用docker-machine ls列出所有虛擬機器

可以看到型別確實為vmwarefusion,然後可以

docker-machine ssh default

連線到虛擬機器的終端下,順便ping下外網地址,檢查下虛擬機器裡是否能上網(這個很重要,因為後面下載映象需要聯網)

  

如果有條件翻*^牆的同學,可以執行

docker pull kitematic/hello-world-nginx 

直接從docker hub拉一個只有幾M的映象檔案試試

三、設定國內映象加速pull

docker hub官網太慢了,還好國內有一家公司daocloud提供了加速服務,設定步驟:

過程略,註冊成功後,進入控制檯

3.2 點選控制檯上的加速器

拉到中間部分,有一個『主機監控程式』的文字連結,見下圖:

然後選擇主機型別,我用的是mac,所以選擇mac主機:

如果已經安裝好了docker toolbox最新版,直接點選【安裝好了】

然後會出現二條命令,複製貼上執行即可:

注:如果按它的提示,最後出現latest: Pulling from daocloud/daomonit not found之類的錯誤,可以嘗試

docker logout daocloud.io

然後重試,安裝成功後,執行

dao pull ubuntu

就可以感受下速度了

  

如果好奇dao這個命令是什麼鬼?可以

which dao

查詢下位置,正常情況下應該在/usr/local/bin/dao下,可以cat看下該檔案的內容:

#!/bin/sh

# DaoTools made by DaoCloud

# Update
command_exists() {
	command -v "[email protected]" > /dev/null 2>&1
}
lsb_dist=''
if command_exists lsb_release; then
	lsb_dist="$(lsb_release -si)"
fi
if [ -z "$lsb_dist" ] && [ -r /etc/os-release ]; then
	lsb_dist="$(. /etc/os-release && echo "$ID")"
fi
lsb_dist="$(echo $lsb_dist | cut -d " " -f1)"
lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"

sh_c='sh -c'

if [ "$user" != 'root' ]; then
	if command_exists sudo; then
		sh_c='sudo -E sh -c'
	elif command_exists su; then
		sh_c='su -c'
	else
		echo >&2 'Error: dao needs the ability to run commands as root.'
		echo >&2 'We are unable to find either "sudo" or "su" available to make this happen.'
	fi
fi


update_daotools() {
	## Update Bash from https://get.daocloud.io/daotools

	## Update Docker Image
	$sh_c "docker inspect daocloud.io/daocloud/daocloud-toolset" > /dev/null 2>&1
	if [ $? -eq 0 ]; then
	  $sh_c "docker pull daocloud.io/daocloud/daocloud-toolset"
	fi

	$sh_c "curl --retry 20 --retry-delay 5 -L -o /tmp/daotools https://get.daocloud.io/daotools"
	if grep -q "DaoCloud" /tmp/daotools
	then
		$sh_c "chmod +x /tmp/daotools"
		if [  "$lsb_dist" = "coreos"  ]
		then
			$sh_c "mv -f /tmp/daotools /opt/bin/dao"
		else
			$sh_c "mv -f /tmp/daotools /usr/local/bin/dao"
		fi
	fi

#	if [ "$(uname)" == "Darwin" ]
#	then
#		chmod 777 /usr/local/bin/dao
#	fi




}



# RUN

$sh_c "docker inspect daocloud.io/daocloud/daocloud-toolset" > /dev/null 2>&1
if [ $? -eq 1 ]; then
	echo "Dao from DaoCloud"
	echo "Initializing, Please wait a minute"
	$sh_c "docker pull daocloud.io/daocloud/daocloud-toolset"
	if [ $? -eq 0 ]; then
		echo "Inital Success"
		echo
	fi
fi

# UPDATE

update_daotools > /dev/null 2>&1  &


# check if this is a tty mode
tty > /dev/null 2>&1

if [ $? -eq 0 ]
then
        istty="-it"
else
        istty=""
fi

if [ "$(uname)" = "Darwin" ]
then
	$sh_c "docker run --rm -v /var/run/docker.sock:/var/run/docker.sock  -v $(which docker):/usr/bin/docker:ro \
	  -v /mnt/sda1/daocloud:/etc/daocloud -v /tmp/daocloud:/tmp/daocloud $istty daocloud.io/daocloud/daocloud-toolset $*"
elif [ "$lsb_dist" = "boot2docker" ]
then
	$sh_c "docker run --rm -v /var/run/docker.sock:/var/run/docker.sock  -v $(which docker):/usr/bin/docker:ro \
	  -v /mnt/sda1/daocloud:/etc/daocloud -v /tmp/daocloud:/tmp/daocloud $istty daocloud.io/daocloud/daocloud-toolset $*"
else
	$sh_c "docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker:ro \
	  -v /etc/daocloud:/etc/daocloud -v /tmp/daocloud:/tmp/daocloud --privileged $istty daocloud.io/daocloud/daocloud-toolset $*"

有興趣的可以仔細研究研究

參考文章:

相關推薦

docker學習(2) macdocker-machine使用vmware fusion以及配置國內映象加速

一、前言 先回顧下上一節建立docker-machine的過程,預設情況下docker toolbox中的docker-machine使用virtual box建立虛擬機器,KI首次啟動時建立虛擬機器的過程,大致相當於下面這條命令: docker-machine create --driver vir

Hadoop 2.0的日誌收集以及配置方法

命名 tail his als 作業 fix enable 決定 RM Hadoop中的日誌包含三個部分,Application Master產生的運行日誌和Container的日誌。 一、ApplicationMaster產生的作業運行日誌 Application Mas

Docker CE安裝及配置國內映象加速教程

一、版本說明 2017年2月份,Docker公司釋出了全新的Docker版本:V1.13.0。從2017年3月1號開始,Docker的版本命名發生如下變化: 專案 說明 版本格式 YY.MM stable版本 每個季度發行 edge版本 每個月發行 同時將Docker分成CE和EE 2個版本。CE版本即社

Docker學習(2):介紹

1.1 什麼是Docker 1.Docker開源專案背景 Docker是基於Go語言實現的開源容器專案,誕生於2013年年初,最初發起者是dotCloud公司。Docker自開源後受到廣泛的關注和討論,目前已有多個相關專案(包括Docker三劍客、Kubernetes等),逐漸形成了

Docker 學習 (2): 常用命令

日誌 映射 bash 自動退出 主機 run 做了 標簽 端口 Docker 學習 (2): 常用命令 命令行操作前提: systemctl start docker 啟動docker sudo -i 進去root模式 一、幫助命令 docker version

Docker學習總結】7.Docker在容器部署靜態網站

上一篇我們介紹了Docker守護式容器的啟動方式,本篇我們來學習如何在Docker容器中部署靜態網站。 這裡我們將在Docker容器中使用Nginx搭建一個靜態網站,通過這個部署,讓大家對在前幾節中學到的Docker容器知識,有進一步的熟悉和理解。 在開始部署之前,首先我們需要先了解一個

深度學習 | 修改Win10Docker映象安裝目錄

前言 是不是發現安裝docker後C盤越來越小了,原來是docker預設將映象安裝到c盤 修改路徑 docker是通過Hyper-V執行虛擬機器,所以我們要修改Hyper-V中,映象的位置 注意,只有啟動了docker才會出現虛擬機器,如下圖: 首先,右鍵Jack(你們

2.docker學習筆記:製作docker映象

製作docker映象 構建映象的方式 上篇章節介紹瞭如何從docker hub上拉取映象,同時我們也可以製作映象上傳到docker hub上。 首先我們需要做一些準備工作: 2.登入docker hub: 可以選擇在官網進行登入,也可以使用

win10系統docker學習(一)——docker安裝

tle png 問題: 方案 start htm 完成後 系統 mage windows系統中目前有兩種安裝docker的方式,分別為boot2docker和docker toolbox。按照官方說明和實際安裝過程來講,推薦使用docker toolbox方

Docker學習(六): 網絡使用與配置

sock AR -i 回顧 覆蓋 htm 參考 ble dock 特別聲明:   博文主要是學習過程中的知識整理,以便之後的查閱回顧。部分內容來源於網絡(如有摘錄未標註請指出)。內容如有差錯,也歡迎指正! =============系列文章============= 1

Docker學習筆記二:Docker的安裝

ros -h bionic docker customer tex 鏈接 space 版本 安裝環境:操作系統:Ubuntu 18.04 LTS,code name:bionic (#lsb_release -a)內核版本:4.15.0-29-generic(#uname

Docker學習筆記三:Docker鏡像image

nta process space ffffff 筆記 地址 running build mark Docker的C/S模式的運行 一:查看鏡像#docker images REPOSITORY TAG IMAGE ID

Docker學習筆記四:Docker容器(container)

fan .com lba docke file 域名 學習 link uno 一:查看容器查看運行容器docker ps查看所有容器docker ps -a二:創建容器docker create <image> ##創建容器 docker start <

理解Docker2):Docker 映象

來源:http://www.cnblogs.com/sammyliu/p/5877964.html 對於每個軟體,除了它自身的程式碼以外,它的執行還需要有一個執行環境和依賴。不管這個軟體是象往常一樣執行在物理機或者虛機之中,還是執行在現在的容器之中,這些都是不變的。在傳統環境中,軟體在執行之前也

Docker學習總結】1.Docker容器技術介紹

一般來說,我們編寫好的應用程式,需要部署在響應的伺服器中,而伺服器則是一臺安裝了OS作業系統的計算機。 在該計算機中,執行我們的應用程式,通過網路對外提供服務。期間我們的應用程式在不停的使用伺服器計算機的軟體 和硬體,來滿足它的計算和執行。 在介紹Docker之前,我們先來介紹一下容器技術。

Docker學習總結】6.Docker守護式容器

上一篇總結,我們學習瞭如何執行一個“互動式”的容器,這些容器在命令互動之後就會停止。但是,在大多數情況下,我們需要一個能夠長期執行的容器來提供服務,這就是Docker的“守護式”程序。即我們可以使用守護方式來執行容器,使得容器可以在後臺一直保持執行狀態。 守護式程序的特點是:(1)能夠長期執

Docker學習總結】5.Docker容器的基本操作

上一篇我們介紹了Docker的安裝和部署,本篇總結Docker安裝完畢後,我們如何進行一些基本的操作。 首先開啟我們之前安裝好docker ce的Cent OS7虛擬機器,使用“docker version”驗證docker已經安裝成功: 然後我們來學習如何操作docker容器: (1)

Docker學習之一:註冊Docker Hub賬號

現如今,Docker可謂是如日中天,使用Docker的人企業越來越多。Docker有很多優點,完美的解決了很多專案部署方面的問題。Docker主要優點:      1、Docker容器很快,啟動和停止秒級實現,對於傳統的來說可謂是致命的。   &nbs

Docker學習之三:Docker在linux下簡單安裝使用

Docker學習之三:Docker在linux下簡單安裝使用 講解的Docker安裝是基於CentOS7系統下進行的,因為Docker只支援CentOS6.5以後的版本。 前置要求:         系統要求,核心版本至少是3.1.0版本。 &