DS120j安装docker教程
由于DS120j的arm64架构并没有被群晖docker官方支持,但是有很多服务又不得不使用容器化,于是在研究了一上午两天?之后出现此文。
Update 22/8/10
一键脚本
1
|
wget https://raw.fastgit.org/lbr77/CDN/main/synodockerarm.sh -O docker.sh && bash docker.sh
|
正文
这里从官网下载aarch64压缩包
1
2
3
4
5
6
|
wget https://mirrors.aliyun.com/docker-ce/linux/static/stable/aarch64/docker-20.10.17.tgz
tar xzvf docker-20.10.17.tgz
sudo cp docker/* /usr/bin/
mkdir -p /etc/docker
touch /etc/docker/daemon.json
vi /etc/docker/daemon.json
|
填入以下内容
1
2
3
4
5
6
|
{
"storage-driver": "vfs",
"iptables": false,
"bridge": "none",
"data-root": "/docker"
}
|
如果有mirror也可以加进去
1
2
3
|
{
"registry-mirrors": ["https://*******.mirror.aliyuncs.com"]
}
|
将/docker
挂载为硬盘中内容,防止只有2G的系统盘爆炸
1
2
3
|
sudo mkdir -p /volume1/@Docker/lib
sudo mkdir /docker
sudo mount -o bind "/volume1/@Docker/lib" /docker
|
打开/root/startdocker.sh
(不知道群晖用的是systemd还是什么)
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/bin/sh
NAME=dockerd
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
DAEMON_ARGS=" --ipv6=false "
PATH=$PATH:/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
mount -o bind "/volume1/@Docker/lib" /docker
iptables -P FORWARD ACCEPT
/usr/bin/dockerd $DAEMON_ARGS
|
运行chmod +x /root/startdocker.sh
添加systemd
1
2
|
touch /lib/systemd/system/dockerd.service
vi /lib/systemd/system/dockerd.service
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[Unit]
Description=docker's daemon
After=docker-mount.service
[Service]
User=root
WorkingDirectory=/docker
ExecStart=/etc/init.d/S60dockerd
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
|
添加docker compose
支持
1
2
3
|
VERSION=$(curl -sL https://api.github.com/repos/docker/compose/releases | jq -r ".[0].name")
wget "https://get.daocloud.io/docker/compose/releases/download/${VERSION}/docker-compose-linux-${docker_arch}" -O /usr/local/lib/docker/cli-plugins/docker-compose
chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
|
设置开机自启
1
2
3
|
systemctl daemon-reload
systemctl start dockerd # 运行
systemctl enable dockerd # 开机启动
|
安装完成辣