docker学习(2) mac中docker-machine使用vmware fusion以及配置国内镜像加速

简介: 一、前言 先回顾下上一节创建docker-machine的过程,默认情况下docker toolbox中的docker-machine使用virtual box创建虚拟机,KI首次启动时创建虚拟机的过程,大致相当于下面这条命令: docker-machine create --driver ...

一、前言

先回顾下上一节创建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.1 先到daocloud.io网站注册一个账号

过程略,注册成功后,进入控制台

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 "$@" > /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 $*"

有兴趣的可以仔细研究研究

 

参考文章:

http://elasticskies.com/docker-machine-on-osx-with-vmware-fusion/

目录
打赏
0
0
0
0
38
分享
相关文章
docker pull 相关配置
通过本文的介绍,您已经了解了如何通过镜像源配置、登录私有仓库、设置网络代理以及其他优化策略来提升 `docker pull`命令的效率和可靠性。这些配置不仅能够显著加快镜像下载速度,还能确保在不同网络环境下的稳定性。通过合理使用这些配置,您可以更好地管理和优化Docker环境中的镜像拉取操作。
111 18
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
【2025最新】VMware Workstation Pro 虚拟机配置与安装VMware Tools 感受它的强大~
VMware Tools 是 VMware 虚拟机中自带的一种增强工具,能够显著提升虚拟机的性能和用户体验。它提供了优化的显卡驱动程序、文件共享与拖放功能、时间同步以及跨虚拟机和宿主机的复制粘贴功能。安装 VMware Tools 可以让虚拟机在 VMware 平台上运行得更加高效,并且对于老旧系统(如 Win98、Win2000、WinXP)也能提供必要的驱动支持。每个虚拟机都需要独立安装与其操作系统版本相匹配的 VMware Tools,以确保最佳兼容性和性能表现。
131 6
【2025最新】VMware Workstation Pro 虚拟机配置与安装VMware Tools 感受它的强大~
Docker Desktop 4.38 安装与配置全流程指南(Windows平台)
Docker Desktop 是容器化应用开发与部署的一体化工具,支持本地创建、管理和运行 Docker 容器。4.38 版本新增 GPU 加速、WSL 2 性能优化和 Kubernetes 1.28 集群管理功能,适用于微服务开发和 CI/CD 流水线搭建。安装要求为 Windows 10 2004 及以上(64 位),需启用 Hyper-V 或 WSL 2。硬件最低配置为 4GB 内存、20GB 存储和虚拟化技术支持的 CPU。安装步骤包括启用系统功能、下载并运行安装程序,完成后配置镜像加速并验证功能。常见问题涵盖 WSL 2 安装不完整、磁盘空间清理及容器外网访问等。
2244 13
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
394 4
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
175 5
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
74 16