在折腾完 RAID 之后,为了让作为 NAS 的 ArchLinux 发挥可用作应用服务器的作用,所以今天则要开始弄 Docker 了,废话不多说直接开始吧!
简介
安装 Docker
安装 Docker 的途径有两种,第一种是透过 pacman 直接安装 docker 官方包,而另一种则是透过 Arch 用户软件仓库(Arch User Repository,AUR)第三方用户仓库中生成并安装开发版本 docker-git,下面使用 pacman 演示安装流程:
1 | # pacman -S docker |
- 使用
pacman -S docker
下载并安装 docker - 使用
systemctl start docker
与systemctl enable docker
使 docker 服务启动与开机自启。 - 使用
docker info
查询 docker 当前运行状态,确保 docker 顺利安装并启动。
配置 Docker
为用户添加使用 docker 命令权限
为了让非 root 用户能正常使用 docker 命令,我们需要把目标用户添加到 docker
组内(如果组别不存在,你可以使用 groupadd docker
创建): 1
# usermod -a -G docker a9032676
并且登出账号重新登陆,输入 docker
确认是否已拥有权限使用。
配置 daemon.json 文件
daemon.json 文件是 docker 守护进程的运行配置
创建文件
首先使用 nano / vim 之类文本编辑器创建文件 /etc/docker/daemon.json
。
镜像加速服务
首先鉴于地区网络质量差异问题,在远程使用 docker pull
拉取镜像的时候可能会较慢,因此我们可以选择性地配置 docker 的镜像服务器加速下载: 1
2
3
4
5
6
7
8{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://dockerhub.azk8s.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
重启 docker 使配置生效: 1
# systemctl restart docker
迁移本地镜像目录
在安装完成之后默认的镜像存放位置是位于 /var/lib/docker
目录下方的,而我们需要透过添加 systemd
的配置以更改 docker 的镜像储存位置:
首先使用 mkdir
新增 docker.service.d
目录: 1
# mkdir /etc/systemd/system/docker.service.d/
然后在目录下新建 docker-storage.conf
文件,并添加下列内容: 1
2
3[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --data-root=/path/to/new/location/docker -H fd://
把 --data-root
选项更改成你目标的目录并保存即可,再将 /var/lib/docker
内的内容复制到你的目录上。
完成之后我们需要使用如下命令重启下 docker.service
服务: 1
2systemctl daemon-reload
systemctl restart docker
最后可使用 systemctl status docker
查询服务是否成功启动。
相关应用推荐
Portainer
简介
由于 docker 日常都需要使用命令行管理各种容器 / 镜像与网络设置等等这些东西,有没有一个方法能够可视化地编辑及部署容器呢?那当然是有的,答案就是 Portainer 啦!
仓库地址
部署容器
这里仅演示 Linux 平台的安装与方式,我们需要创建一个卷,并命名为 portainer
即可。另外容器本身需要两个端口运作,因此需要把任意两个外部端口映射成 8000
与 9000
即可: 1
2# docker volume create portainer_data
# docker run -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
在正式跑起来之后进入网页后台 http://[your_address]:9000
创建新账号并登陆即可。
Samba
简介
Samba 提供了安全,可靠且快速的文件共享系统,且透过 SMB / CIFS 协议传输数据,并且完全兼容 DOS 与 Windows,OS/2,Linux 与其他更多的系统。
仓库地址
部署容器
1 | # docker run -it --name samba -p 139:139 -p 445:445 \ |
AriaNg
简介
很好用很方便的一个 Aria2 下载工具,自带网页可视化管理且完全兼容 Linux / 群晖 / FreeNAS 等系统。
仓库地址
创建容器
由于需要填写的变量以及选项较多,推荐直接于 Portainer 内直接下载并新建容器,当然这里也只讲述下命令行启动的方法: 1
2
3
4
5
6# docker create --name=aria2_web \
-v /home/a9032676/downloads:/mnt \
-v /home/a9032676/.aria2_conf:/config \
-e PGID=1000 -e PUID=1000 -e SECRET=PASSWORD \
-p 6800:6800 -p 80:80 \
auska/docker-aria2
参数说明: - --name=<CONTAINER_NAME>
设置容器名字。 - -v <DOWN_PATH>:/mnt
把容器内的 /mnt(默认下载存放位置)
目录映射到卷上,或可选择在宿主机(Host)上指定的目录挂载。 - -v <CONF_PATH>:/config
同上,只不过这个是配置文件目录。 - -e PGID=1000 -e PUID=1000 -e SECRET=<PASSWORD>
这里指定三个环境变量(Environment)参数,第一二个参数请使用 id USER
命令获取,而第三个为你的 RPC 服务器密钥,请自行更改。 - -p <HOST_PORT>:6800 -p <HOST_PORT>:80
由于该容器需要两个端口,6800
为 RPC 服务监听端口,而 80
则为 Aria2 网页下载管理端口,请按照自己宿主机的端口进行映射。
Transmission
相信使用过 Transmission 下载 BT 文件的对它都不陌生,它的配置简洁,而且下载高效,且开源的性质,相信也吸引了很多人使用。而在 docker 上也有相关的第三方实现。
仓库地址
创建容器
1 | # docker create \ |
参数说明: - -e PGID=1000 -e PUID=1000
请使用 id USER
命令获取 PGID 与 PUID。 - -e TZ=Asia/HongKong
时区设置。 - -e TRANSMISSION_WEB_HOME=/combustion-release/
指定 WebUI 的目录位置(可选)。 - -p 9091:9091
为你的 Transmission 下载网页端口 - -p 51413:51413 -p 51413:51413/udp
为 Torrent 的 TCP 与 UDP 端口 - -v path to data:/config
为配置目录 - -v path to downloads:/downloads
为下载目录 - -v path to watch folder:/watch
Torrent 文件的 watch 目录