# 手动部署
最后更新: 2024-06-24 00:00:00
# 手动部署
# 环境支持
CentOS/RHEL 7/8/9
# 在线安装
# 参考资料
https://docs.docker.com/engine/install/centos/ (opens new window)
https://docs.docker.com/engine/install/rhel/ (opens new window)
# 卸载 docker 老版本
注意:如果预装了 podman 也需要卸载
yum remove -y \
docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 按需删除 /etc/docker/daemon.json
rm -f /etc/docker/daemon.json
# 安装 docker 依赖
安装 yum-utils 软件包并设置软件源
# 安装 yum-utils 软件包并设置软件源
# 官方
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 家用
yum install -y yum-utils
yum-config-manager --add-repo https://repos.oso.plus/docker-ce/linux/centos/docker-ce.repo
sed -i 's%download.docker.com%repos.oso.plus/docker-ce%g' /etc/yum.repos.d/docker-ce.repo
sed -i 's%download.docker.com%repos.oso.plus/docker-ce%g' /etc/yum.repos.d/docker-ce.repo
yum install -y checkpolicy fuse-overlayfs fuse3 fuse3-libs libcgroup libslirp slirp4netns
# 执行 docker 安装
# 安装 docker 最新版
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 如果需要安装特定版本 可通过以下命令查看有哪些特定版本可供安装
yum list docker-ce --showduplicates | sort -r
# 管理 docker 服务
# 启动 docker 服务并加入开机自启
systemctl enable --now docker
# 取消开机自启
systemctl disable docker
# 启动 docker 服务
systemctl start docker
# 关闭 docker 服务
systemctl stop docker
# 重启 docker 服务
systemctl restart docker
# 检查 docker 状态
systemctl status docker
# 验证 docker 安装
docker run hello-world
# 修改 docker 配置
以下配置是使用国内镜像源
mkdir -p /data/docker
# 默认文件 /etc/docker/daemon.json
cat > /etc/docker/daemon.json << EOF
{
"insecure-registries": [
"r.oso.plus",
"r.upx.plus"
],
"exec-opts": [
"native.cgroupdriver=systemd"
],
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://mirror.ccs.tencentyun.com",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"data-root": "/data/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"experimental": true
}
EOF
# 安装 docker-compose
以下方法适用于安装 docker-compose 的 standalone 版。
官方下载地址: https://github.com/docker/compose/releases (opens new window)
# 安装给当前用户
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
# 下载时注意对应的平台架构
curl -SL https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64 \
-o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
# 安装给所有用户
DOCKER_CONFIG=${DOCKER_CONFIG:-/usr/local/lib/docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
# 下载时注意对应的平台架构
curl -SL https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_64 \
-o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
# 检查版本
docker compose version
# 卸载 docker-compose 插件
yum remove docker-compose-plugin
# 离线安装
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Debian 11/12
# 在线安装
# 卸载非官方版本
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt remove $pkg; done
# 卸载已装版本
apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
# Add Docker's official GPG key:
apt update
apt install ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker run hello-world
# 离线安装
# 下载离线包
https://download.docker.com/linux/debian/dists/
# 执行安装
dpkg -i ./containerd.io_<version>_<arch>.deb \
./docker-ce_<version>_<arch>.deb \
./docker-ce-cli_<version>_<arch>.deb \
./docker-buildx-plugin_<version>_<arch>.deb \
./docker-compose-plugin_<version>_<arch>.deb
# 启动和测试
service docker start
docker run hello-world
# 卸载和清理
apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
# Ubuntu 20.04/22.04/24.04
# 在线安装
# 卸载非官方版本
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt remove $pkg; done
# Add Docker's official GPG key:
apt update -y
apt install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update -y
# ubuntu 20.04
# cat /etc/apt/sources.list.d/docker-ce.list
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://repos.oso.plus/docker-ce/linux/ubuntu focal stable
# 离线安装
下载地址:https://download.docker.com/linux/ubuntu/dists/
dpkg -i ./containerd.io_<version>_<arch>.deb \
./docker-ce_<version>_<arch>.deb \
./docker-ce-cli_<version>_<arch>.deb \
./docker-buildx-plugin_<version>_<arch>.deb \
./docker-compose-plugin_<version>_<arch>.deb
service docker start
docker run hello-world
# 离线静态二进制版安装
下载地址:https://download.docker.com/linux/static/stable/ (opens new window)
注意:当前方式是安装在/usr/bin系统目录下。主要是为了避免一些默认路径或环境变量的问题。如果系统对应路径下存在同名文件将被覆盖。
# groupadd docker
# useradd -r -g docker -s /sbin/nologin -M docker
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
dnf install -y tar gzip curl libcgroup
tar -xf docker-26.1.4.tgz --strip-components=1 -C /usr/bin/
mkdir -p /usr/libexec/docker/cli-plugins
mv docker-compose-linux-x86_64 /usr/libexec/docker/cli-plugins/docker-compose
mv buildx-v0.15.1.linux-amd64 /usr/libexec/docker/cli-plugins/docker-buildx
chmod +x /usr/libexec/docker/cli-plugins/{docker-compose,docker-buildx}
echo 'export PATH=/usr/libexec/docker/cli-plugins:$PATH' >>/etc/profile
source /etc/profile
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{
"insecure-registries": ["r.oso.plus"],
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://registry.docker-cn.com"],
"data-root": "/data/docker",
"log-driver": "json-file",
"log-opts": {"max-size": "100m"}
}
EOF
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=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
#TasksMax=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable docker
systemctl start docker
systemctl restart docker
systemctl stop docker
# 卸载
systemctl stop docker
rm -rf /usr/bin/{containerd,containerd-shim-runc-v2,ctr,docker,docker-init,docker-proxy,dockerd,runc}
rm -rf /usr/libexec/docker/cli-plugins/docker-{buildx,compose}
rm -f /etc/docker/daemon.json
rm -f /etc/systemd/system/docker.service
编撰人:yangfc
快速跳转
