Skip to content

OpenEuler 22.03 LTS-SP4 二进制部署docker&docker-compose

一、二进制部署 docker

1.1 二进制包下载

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

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

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

1.3 编写docker systemd文件

bash

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
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

TIP

  • 备注: 如果想要修改docker默认存储路径,不推荐此方式,❌❌❌ 建议保留/var/lib/docker ,使用软连接的方式
bash
vim  /etc/systemd/system/docker.service
........
ExecStart=/usr/bin/dockerd --graph=/home/application/docker
........

1.4 使用软连接的方式【挂载docker默认存储路径】

TIP

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

bash
#建立工作目录
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/

1.5 添加可执行权限

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

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

bash
systemctl daemon-reload 
systemctl start docker
systemctl enable docker

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

WARNING

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

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

systemctl daemon-reload
systemctl restart docker

⚠️

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

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

⚠️

如果客户的网络里有172.17.0.0/16172.31.0.0/16 的私有地址段 网段,需要在 /etc/docker/daemon.json 中 设置 bip(默认网桥的子网)和 default-address-pools(用于其他网络的地址池)

  • 默认 Docker 子网分配规则
    • 默认网桥 (docker0) 首次安装 Docker 时,默认创建的主桥接网络 docker0 会使用 172.17.0.0/16
    • 其他用户自定义网络 当创建新的 bridge 或 overlay 网络时,Docker 会依次从 172.18.0.0/16 开始分配,后续子网为 172.19.0.0/16 → 172.20.0.0/16 → ... → 172.31.0.0/16

bash
{
  "bip": "192.168.8.1/24",
  "default-address-pools": [
    {
      "base": "172.10.0.0/16",
      "size": 24
    }
  ]
}


#重启 Docker 服务
systemctl restart docker

二、二进制部署docker-compose

2.1 二进制包下载

bash
wget https://github.com/docker/compose/releases/download/v2.38.0/docker-compose-linux-x86_64 -O /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

2.2 版本验证

bash
docker-compose version
Docker Compose version v2.38.0
最近更新

采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟