二进制安装docker

2.1 二进制包下载

wget https://mirrors.nju.edu.cn/docker-ce/linux/static/stable/x86_64/docker-27.1.1.tgz

2.2 解压,拷贝至/usr/bin 下

tar -xf docker-27.1.1.tgz
cp docker/* /usr/bin
which docker

2.3 编写docker.service文件

vim /etc/systemd/system/docker.service

[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
  • 备注: 如果想要修改 docker默认 存储路径,不推荐此方式,建议保留 /var/lib/docker ,使用 软连接的方式
vim  /etc/systemd/system/docker.service

........
ExecStart=/usr/bin/dockerd --graph=/home/application/docker
........

2.4 挂载docker默认存储路径[可选]

docker的默认工作路径在/var/lib/docker ,最好不修改默认存储路径,可以做软链接

#建立工作目录
mkdir /home/application/

#格式化磁盘
mkfs.ext4 /dev/sdb

#磁盘永久挂载
vim /etc/fstab
/dev/sdb  /home/application  ext4 defaults 0 0

#使挂载生效
mount -a


# 创建docker 工作目录
mkdir -p /home/application/docker


#创建软链接
ln -s /home/application/docker /var/lib/

2.5 添加可执行权限

chmod +x /etc/systemd/system/docker.service

2.6 启动,加载,开机自启动

systemctl daemon-reload 
systemctl start docker
systemctl enable docker

2.7 配置镜像加速器,日志管理

⚠️ 镜像加速地址可能随时失效,请自行验证!!

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.m.daocloud.io"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

systemctl daemon-reload
systemctl restart docker

tips:⚠️

如果仓库不是https 的,需要在 /etc/docker/daemon.json 中 添加忽略;比如下方的示例

"insecure-registries": [
    "https://xx.xx.com",
    "https://xx.xx.cc.xx.com"
  ]

tips:⚠️

如果客户的网络里有172.17.0.0 网段,需要在 /etc/docker/daemon.json 中修改默认的docker0 网桥地址,避免冲突

{
"bip":"192.168.8.1/24"
}