主题
install.sh
bash
#! /bin/bash
# 判断是否是root用户
if [ "$EUID" -ne 0 ]; then
echo "请使用root用户执行"
exit 1
fi
docker_version=29.4.3
docker_install_dir=/usr/local/bin
function docker_download() {
curl -x http://192.168.60.1:12450 -LO https://download.docker.com/linux/static/stable/x86_64/docker-$docker_version.tgz
if [ $? -ne 0 ] || [ ! -f "docker-$docker_version.tgz" ]; then
echo "下载失败,请检查网络"
exit 1
fi
curl -x http://192.168.60.1:12450 -LO https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64
if [ $? -ne 0 ] || [ ! -f "docker-compose-linux-x86_64" ]; then
echo "Docker Compose 下载失败,请检查网络"
exit 1
fi
tar -zxvf docker-$docker_version.tgz
}
function docker_install() {
cp -a docker/* $docker_install_dir
mkdir -p /etc/docker
mkdir -p /etc/systemd/system/docker.service.d
cat >/etc/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=$docker_install_dir/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
cat >/etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "500m",
"max-file": "3"
},
"default-address-pools": [
{
"base": "172.17.0.0/16",
"size": 24
}
]
}
EOF
cat >/etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://192.168.60.1:12450"
Environment="HTTPS_PROXY=http://192.168.60.1:12450"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF
groupadd docker 2>/dev/null || true
CURRENT_USER="${SUDO_USER:-$USER}"
[ "$CURRENT_USER" = "root" ] && CURRENT_USER=""
if [ -n "$CURRENT_USER" ]; then
usermod -aG docker "$CURRENT_USER"
fi
systemctl daemon-reload
systemctl enable --now docker
}
function docker_compose_install() {
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
}
function clean() {
rm -rf docker-$docker_version.tgz docker
}
function main() {
docker_download
docker_install
docker_compose_install
clean
echo "docker安装完成"
}
main "$@"uninstall.sh
bash
#! /bin/bash
# 判断是否是root用户
if [ "$EUID" -ne 0 ]; then
echo "请使用root用户执行"
exit 1
fi
docker_version=29.4.3
docker_install_dir=/usr/local/bin
function docker_uninstall() {
systemctl disable --now docker
rm -rf /var/lib/docker
rm -rf /etc/docker
rm -rf /etc/systemd/system/docker.service
rm -rf /etc/systemd/system/docker.service.d
# 删除二进制文件(用空格分隔)
for i in containerd containerd-shim-runc-v2 ctr docker docker-init docker-proxy dockerd runc docker-compose; do
rm -f /usr/local/bin/$i
done
systemctl daemon-reload 2>/dev/null
echo "Docker 卸载完成"
}
function main() {
docker_uninstall
}
main "$@"