Docker在非Linux环境下都是跑在虚拟机上的。
早期的Docker for Mac是跑在VirtualBox下,之后是基于苹果的hyperkit来实现的。
但是,这两种方式都是比较低效且占用过多的资源。
单一个docker hyperkit就占用内存超过3GB。
Snipaste_2020-05-05_13-35-00.png
磁盘空间占用也非常之大。
Snipaste_2020-05-05_13-36-20.png
大名鼎鼎的Parallels desktop在mac上运行起来算比较丝滑的了,那么能否将docker运行在其之上呢?答案当然是可以的,接下来将记录整个步骤。
# 安装docker
brew install docker
# 安装docker-machine-parallels(会自动安装docker-machine)
brew install docker-machine-parallels
# 创建docker虚拟机(会拉取 boot2docker.iso 镜像并在parallels创建default的虚拟机)
docker-machine create --driver=parallels default
# 启动创建好的docker虚拟机
docker-machine start default
# 输出相关环境变量
docker-machine env default
# 将上一步输出的脚本在终端执行一次。例如:
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://10.211.55.9:2376"
export DOCKER_CERT_PATH="/Users/fan/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# 或
eval $(docker-machine env default)
至此,已经可以愉快的把玩docker了,后续的步骤将简单来跑个demo。
# 拉取alpine镜像
docker pull alpine
# 运行镜像
docker run -p 1080:80 -it alpine:latest sh
# 安装nginx
apk add nginx
# 运行nginx
nginx
# 查看docker虚拟机default的ip
docker-machine ip default
# 访问服务
http://ip:1081
Parallels 为我们提供了端口映射服务。
Parallels desktop --> 系统偏好 --> 网络设置,将本地端口与docker的虚拟机端口作映射。
例如:把本地1081映射到虚拟机上的1081端口。
这时候就可以在你的Mac物理机上通过http://localhost:1081
来访问容器中运行的nginx服务了。
网友评论