文章目录
- 1.概述
- 2.Docker二进制包下载
- 3.安装脚本制作
- 4.安装
- 5.卸载
- 6.注意事项
- 7.分享一个arm版自动部署安装包
- 8.懒人 X86 版安装包
1.概述
最近需要在Linux上部署docker,于是自己做了一个自动部署包。脚本的写法不区分X86或arm,通用的。
2.Docker二进制包下载
arm V8的从该地址下载:
- https://download.docker.com/linux/static/stable/aarch64/
X86的从改地址下载:
- https://download.docker.com/linux/static/stable/x86_64/
3.安装脚本制作
- 首先解压下载的Docker安装包。
tar -zxvf XXX.tar.gz
- 在Docker文件夹所在目录制作安装脚本 install.sh ,脚本里写入如下内容,并保存。
#!/bin/bash
cp -a ./docker/* /usr/bin/
cat > /usr/lib/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
chmod +x /usr/lib/systemd/system/docker.service
systemctl daemon-reload
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl start docker
systemctl enable docker
- 给该脚本增加执行权限
chmod +x install.sh
4.安装
然后就可以安装了,执行./install.sh
即可完成安装。
5.卸载
某些情况可能需要卸载已安装的docker,比如切换docker版本。
在install.sh 同级目录新建 uninstall.sh文件,在 uninstall.sh 文件里写入如下内容完成
#!/bin/bash
dir="/usr/bin/"
files=("containerd" "containerd-shim-runc-v2" "ctr" "docker" "dockerd" "docker-init" "docker-proxy" "runc")
systemctl stop docker
cd "$dir" || exit 1 # 如果切换失败则退出脚本
#循环删除文件
for file in "${files[@]}";
do
if [ -f "$file" ]; then
rm -rf "$file"
else
echo "$file not found"
fi
done
rm -rf /etc/docker/daemon.json
rm -rf /etc/docker
rm -rf /var/lib/docker
rm -rf /usr/lib/systemd/system/docker.service
systemctl daemon-reload
echo "Done"
增加执行权限 chmod +x uninstall.sh
执行卸载./uninstall.sh
即可完成卸载。
6.注意事项
使用过程中镜像和容器默认存储于/var/lib/docker
目录,容器和镜像逐渐增长会使磁盘空间耗尽导致运行失效,有两个解决办法。
- 方法1:安装阶段就把存储位置配置到其他大空间的磁盘,在
/etc/docker/daemon.json
文件里指定存储路径,比如"data-root":"/data/mypath"
,可在安装脚本里把/etc/docker/daemon.json
的内容改为如下内容。
{
"data-root":"/data/mypath",
"registry-mirrors": ["https://registry.docker-cn.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
- 方法2:软连接。通过软连接把存储位置指向其它位置,当然原有
/var/lib/docker
目录的内容要移动过去。比如
systemctl stop docker # 停止docker
mv /var/lib/docker /usr1/docker # 迁移docker数据到新路径,新路径只需保证在/usr1下即可。阿里云版docker容器目录位于/usr/libexec/docker
ln -s /usr1/docker /var/lib/docker # 创建软连接
systemctl start docker # 重新启动docker
# 查看容器和镜像的目录
docker info | grep "Dir"
7.分享一个arm版自动部署安装包
该自动部署安装包是arm版的,麒麟 KyLin SP3 系统测试正常。
arm版Docker 27.1.1自动部署包蓝奏云超链接
或者扫码下载
8.懒人 X86 版安装包
如果觉得复制上面的安装脚本也觉得麻烦怕操作有误,那换种方式吧。首先下载 X86 版docker二进制包解压,然后把我上面蓝奏云共享的arm包下载了解压,注意X86版和arm版不要放在同一目录,解压时会相互覆盖。把arm版的脚本拷贝到 X86版对应位置并执行install.sh
即可运行。