Mac OS下Docker的安装与配置

2024-06-04 3114阅读

Mac OS上Docker Desktop 安装与配置

  • Docker Desktop 下载
  • 开发人员的Docker日常
  • 如何正确修改Docker的配置
    • Mac OS下Docker Desktop的默认配置
    • Docker Desktop修改Disk Image Location无效
    • 怎样才是正确的姿势?
    • 还有哪些坑

      Docker Desktop 下载

      Docker 的安装文件可以通常docker.com官方网站直接下载,官方提供了不同操作系统版本的Docker安装文件。点击下边的地址可进入下载页面

      链接: Download Docker Desktop

      Mac OS下Docker的安装与配置 第1张

      如上图所示,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时,还特意将磁盘划分为了系统盘和数据盘,其中给到系统盘的空间较少。默认情况下,如果不在修改配置,我们所下载的镜像,以及为容器创建的持久化卷都是保存在系统盘底下,如图所示:

          Mac OS下Docker的安装与配置 第2张

          大家可以在安装完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, 磁盘空间等的调整,如下图所示:

          Mac OS下Docker的安装与配置 第3张

          这里我们可以看到: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文件。

          Mac OS下Docker的安装与配置 第4张

          我们通过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
              

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]