Mac OS下Docker的安装与设置

火影  金牌会员 | 2024-6-21 13:26:42 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

Docker Desktop 下载

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

如上图所示,Docker 提供了4个版本的Docker Desktop, 此中Mac版本必要各人根据本身的MacBook的芯片举行选择。
开辟职员的Docker一样寻常

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


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


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

Mac OS下Docker Desktop的默认设置

通常来讲安装好后,也不必要举行什么设置,直接启动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修改Disk Image Location无效

以是我们安装的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,然后修改目录到我们指定的目录就可以了。以下两点必要注意一下,:


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



  • 关于Docker.raw文件巨细,最小值似乎是32GB,不能再小了。
  • 调整涉及的参数为:“diskSizeMiB”: 32000,
  • 向下调整巨细要审慎,由于会导致镜像和容器丢失
  • 请不要通过docker volume create命令来创建数据卷
  • 请通过-v 参数指定长期化数据卷,可以指定本地盘的某个目录举行挂载
    参数说明 :-v [本地目录]:[容器目录]
  1. docker run -d -p 8081:8081 --name nexus -v /Volumes/Data/01_HOME/Nexus:/nexus-data sonatype/nexus3
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表