赞
踩
Docker 的安装文件可以通常docker.com官方网站直接下载,官方提供了不同操作系统版本的Docker安装文件。点击下边的地址可进入下载页面
链接: Download Docker Desktop
如上图所示,Docker 提供了4个版本的Docker Desktop, 其中Mac版本需要大家根据自己的MacBook的芯片进行选择。
本人是一名服务端开发人员,Docker在开发的日常工作中扮演了重要的角色,如果你还没有在开发中使用过Docker,强列建议大家使用,因为在云原生应用时代,容器是大家必须要学会使用的一个工具。
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
brew install redis
以上就是一些常见的Docker使用场景,我们可以使用Docker来快速且轻松的解决,我们只需要安装好Docker Desktop后,执行Docker pull 命令下载相应的镜像,然后执行docker run 命启来启动相应容器就可以了。
以mysql 为例,如果想下载最新版本的mysql,使用如下命令
docker pull mysql
如果想下载某一个版本的mysql,使用如下命令
docker pull mysql:5.7
关键在于,可以同时运行两个版本的mysql 服务,使用docker大大的简化了不同版本需要同时存在的问题。
通常来讲安装好后,也不需要进行什么配置,直接启动Docker Desktop 即可。但本人的MacBook 碰盘空间有限,而且在安装OS时,还特意将磁盘划分为了系统盘和数据盘,其中给到系统盘的空间较少。默认情况下,如果不在修改配置,我们所下载的镜像,以及为容器创建的持久化卷都是保存在系统盘底下,如图所示:
大家可以在安装完DockerDesktop后去检查一下这个目录:
~/Library/Containers/com.docker.docker/Data/vms/0
在data目录下你会找到一个Docker.raw的文件,当我们pull image时我们可以看到该文件的访问时间会产生变化,文件默认大小约64GB(实际为60GB多一点,在终端下查看,可以看到该文件大小为63999836160 字节, 使用 ls -lh 查看,则显示约为60GB。
这里补充一个关于在 Mac OS沙盒机制的一点小知识,在MacOS下,~/Library/Containers 是一个存储 macOS 沙盒应用程序容器的目录。沙盒是一种安全机制,可限制应用程序对系统的访问。每个应用程序都在容器中运行,该容器包含应用程序的代码、数据和配置。
~/Library/Containers 目录中的每个文件夹都代表一个应用程序容器。文件夹的名称是应用程序的唯一标识符。例如,com.apple.Safari 是 Safari 应用程序的容器。
所以我们安装的Docker Desktop也要遵循这个规则。我们进入Docker Desktop 上配置页面,可以对列如CPU, 磁盘空间等的调整,如下图所示:
这里我们可以看到:Disk image location这个配置:
大家可以检查一下默认配置是什么,是不是就是下面这个路径?
~/Library/Containers/com.docker.docker/Data/vms/0/data/xxxx/DockerDesktop
虽然我们看到这个地方可以修改Disk image location的值,但总会遇到很神奇的事情,即使我们在这里修改成了新的目录,并且重启了DockerEngine,但我们在新的目录下并没有发现任何文件,我尝试了很多次,都是同样的结果,大家可以尝试一下,看看是不是也会如此神奇。不知道这是不是Docker Desktop的一个小小的BUG.
而且当我们退出DockerDesktop应用,然后重启应用并进入设置界面,我们会发现DockerImageLocation的值还原了
我们回想一下MacOS的沙箱机制,在~/Library目录下,存在这样一个目录:Group Containers,我们可以找到group.com.docker这个目录,底下有一个settings.json文件。
我们通过vim编辑该文件,找到 dataFolder 这一个key,然后修改目录到我们指定的目录就可以了。以下两点需要注意一下,:
"dataFolder": "/Volumes/Data/01_HOME/DockerDesktop",
重启DockerDesktop后,发现Disk Image Location的值已经变成了我们指定的目录,当我们再pull新的镜像时,数据就会保存到新的位置了,这样我们就节省了不少的宝贵的系统盘空间。
docker run -d -p 8081:8081 --name nexus -v /Volumes/Data/01_HOME/Nexus:/nexus-data sonatype/nexus3
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。