主题
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/16
到 172.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
- 默认网桥 (docker0) 首次安装 Docker 时,默认创建的主桥接网络 docker0 会使用
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