火影 发表于 2024-6-21 13:26:42

Mac OS下Docker的安装与设置

Docker Desktop 下载

Docker 的安装文件可以通常docker.com官方网站直接下载,官方提供了差别操作系统版本的Docker安装文件。点击下边的地址可进入下载页面
链接: Download Docker Desktop
https://img-blog.csdnimg.cn/direct/2e9d03141d9d42b39b327429de8e3179.png
如上图所示,Docker 提供了4个版本的Docker Desktop, 此中Mac版本必要各人根据本身的MacBook的芯片举行选择。
开辟职员的Docker一样寻常

本人是一名服务端开辟职员,Docker在开辟的一样寻常工作中饰演了重要的脚色,假如你还没有在开辟中利用过Docker,强列建议各人利用,由于在云原生应用期间,容器是各人必须要学会利用的一个工具。


[*]试想一下,在容器还未出现的年代,假如我们想在本身的Mac电脑上安装某个中间件组件,比如Redis,那么我们通常利用Mac下比力闻名的安装工具Homebrew 来举行安装,而Homebrew也是必要安装的。
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

brew install redis


[*]假如你所负责的项目中,有些项目利用Mysql 5.7, 而有一些利用Mysql 8.0,你要怎么在这两个版本间切换?
[*]偶然候想在项目中引用某一个开源组件,比如EMQX。
[*]想在本地搭建一个Nexus 私服
[*]想构建本身的容器应用
以上就是一些常见的Docker利用场景,我们可以利用Docker来快速且轻松的解决,我们只必要安装好Docker Desktop后,执行Docker pull 命令下载相应的镜像,然后执行docker run 命启来启动相应容器就可以了。
以mysql 为例,假如想下载最新版本的mysql,利用如下命令
docker pull mysql
假如想下载某一个版本的mysql,利用如下命令
docker pull mysql
:5.7 关键在于,可以同时运行两个版本的mysql 服务,利用docker大大的简化了差别版本必要同时存在的问题。
怎样精确修改Docker的设置

Mac OS下Docker Desktop的默认设置

通常来讲安装好后,也不必要举行什么设置,直接启动Docker Desktop 即可。但本人的MacBook 碰盘空间有限,而且在安装OS时,还特意将磁盘划分为了系统盘和数据盘,此中给到系统盘的空间较少。默认情况下,假如不在修改设置,我们所下载的镜像,以及为容器创建的长期化卷都是保存在系统盘底下,如图所示:
https://img-blog.csdnimg.cn/direct/32a57ffb1ec8414d9e4f977f66a1e52f.png
各人可以在安装完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修改Disk Image Location无效

以是我们安装的Docker Desktop也要遵循这个规则。我们进入Docker Desktop 上设置页面,可以对列如CPU, 磁盘空间等的调整,如下图所示:
https://img-blog.csdnimg.cn/direct/416a325a2f3c4c3cb4bc6d08d7c10f92.png
这里我们可以看到: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文件。
https://img-blog.csdnimg.cn/direct/4ab35dbe60e34e929d649e3aab711c2a.png
我们通过vim编辑该文件,找到 dataFolder 这一个key,然后修改目录到我们指定的目录就可以了。以下两点必要注意一下,:


[*]请先关闭DockerDesktop应用,再举行修改。
[*]将默认目录下的Docker.raw文件移至我们新指定的目录
"dataFolder": "/Volumes/Data/01_HOME/DockerDesktop",
重启DockerDesktop后,发现Disk Image Location的值已经酿成了我们指定的目录,当我们再pull新的镜像时,数据就会保存到新的位置了,这样我们就节省了不少的名贵的系统盘空间。
还有哪些坑



[*]关于Docker.raw文件巨细,最小值似乎是32GB,不能再小了。
[*]调整涉及的参数为:“diskSizeMiB”: 32000,
[*]向下调整巨细要审慎,由于会导致镜像和容器丢失
[*]请不要通过docker volume create命令来创建数据卷
[*]请通过-v 参数指定长期化数据卷,可以指定本地盘的某个目录举行挂载
参数说明 :-v [本地目录]:[容器目录]
docker run -d -p 8081:8081 --name nexus -v /Volumes/Data/01_HOME/Nexus:/nexus-data sonatype/nexus3

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Mac OS下Docker的安装与设置