群晖入门到进阶系列(六):Docker安装与配置

  最近实在太忙,加班很多,加上原本以为没什么人看,所以拖更了那么久。本篇及后面几篇将会讲讲让群晖变得更强的一个东西:Docker,并介绍 Alliot 正在用的一些不错的镜像。本篇为扫盲,有基础可以跳过此文。

Docker 介绍

  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
  Docker 共享操作系统内核底层,只是软件层面的虚拟化,而不像虚拟机那样对物理层虚拟,所以资源的消耗相对小,同时由于社区与 Docker HUB 的存在,大量优质的应用都能够傻瓜式的部署在 Docker 平台上。

Docker 安装

  首先要说的是,x86 平台的群晖才能用的上 Docker 套件,因此,ARM 架构平台的群晖只能说非常遗憾了。
  打开套件中心,在 “所有套件” 中找到 Docker 并安装:
  群晖-docker套件.png
  安装位置根据自己需求选择。
  进入 “控制面板” 选择 “共享文件夹” 创建一个用于存放 Docker 相关 Volume 文件的共享文件夹。后面我们运行一些容器的时候,会需要挂载一些 Volume 做数据持久化,因为容器是无状态的(不知道这样描述对不对),所以我们映射一些文件夹到容器内,这样容器销毁时,就不会丢失这部分数据,关于 Volume 等概念这里不做赘述,有兴趣的朋友可以去参阅相关教程。
  群晖-新建docker共享文件夹.png
  至此,Docker 套件便安装完成了。

相关概念

  下面我们打开套件来了解一下几个概念。
  首先我们来看的是容器(container),容器类似于 Vmware 等虚拟化平台中的虚拟机,我们知道,我们通过镜像来创建虚拟机,Docker 也类似,从 image(映像) 创建 container(容器):
  群晖-docker容器页.png
  注册表类似一个公有映像仓库,我们可以从中很方便的下载需要的映像,如:nginx、WordPress 等:
  群晖-docker注册表页.png
  从注册表下载来的映像便到了映像页面:
  群晖-docker映像页.png
  我们需要从 “注册表页面” 中搜索我们需要的 “映像” 到本地,从 “映像页面” 创建 “容器” 。   

配置映像加速器

  群晖默认的映像服务器下载速度很慢,我们这里使用国内的其他映像源,这里推荐阿里云的镜像加速器:
  参考 配置阿里云Docker镜像加速度器 - Alliot’s blog,获得自己专属的阿里云镜像加速器地址后,使用 ssh 连接并群晖获取 root 权限 ,执行:

1
2
3
4
5
6
7
8
sudo tee /var/packages/Docker/etc/dockerd.json <<-'EOF'
{
"data-root" : "/var/packages/Docker/target/docker",
"log-driver" : "db",
"registry-mirrors" : [ "https://no1pfk8z.mirror.aliyuncs.com" ], # 这里换成前面获得的地址
"storage-driver" : "btrfs"
}
EOF

回到套件中心重启 Docker 套件即可(未生效请重启 DSM )。