三种方式:2种在线,1种离线

建议安装前,先环境准备:
1.关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2.关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
setenforce 0  # 临时

3.桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 生效

4.转发IPv4流量
编辑文件

vi /etc/sysctl.conf 

net.ipv4.ip_forward=1 #修改/新增这一行

执行生效:

sysctl -p

建议:最好重启服务器 reboot

一、安装

有时候“在线安装”时候,提示某个依赖包需要更高版本,这时候要不更新yum update这个依赖包,要不安装适配的低版本docker。

比如:我的飞腾服务器,安装提示 nothing provides container-selinux >= 2:2.74 needed by docker-ce-3:26.1.3-1.el8.aarch64 ,但是官方 在线repo仓库 最新只有 2.73版本无法update, 这时候我选择“离线安装”20.10.23版本。

方式1-在线(amd和arm都可以)

1、添加Centos源和docker镜像源:

#如果本身系统有yum源,这个可以忽略不要,建议用openEuler的源:参考:https://forum.openeuler.org/t/topic/768
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

# 这个需要,获取docker源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

2、更改名称:

sed -i 's/\$releasever/8/g' /etc/yum.repos.d/docker-ce.repo

3、刷新包缓存

dnf clean all
dnf makecache

4、安装

dnf install docker-ce -y

方式2-在线 (忽略-暂报错缺少依赖)

# Step 1: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# Step 2
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

# Step 3
vi /etc/yum.repos.d/docker-ce.repo
### 把  $basearch  改为 7或8

# Step 4
dnf update

# Step 5
dnf install -y docker-ce


方式3- 离线

openEuler离线安装docker

内容如下:
docker下载地址:
https://download.docker.com/linux/static/stable/

所有版本都有,根据你的需求去选择。我这里下载的docker版本号是docker-27.4.1.tgz
或者其他版本: 20.10.23

wget  https://download.docker.com/linux/static/stable/x86_64/docker-27.4.1.tgz
tar -zxvf docker-27.4.1.tgz 
cp docker/* /usr/bin/
vi /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 --selinux-enabled=false
#ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1 加了  --insecure-registry=127.0.0.1,就无法配置 daemon.json("iptables": false) 解决docker与 firewalld冲突(https://blog.csdn.net/liyanggyang/article/details/130386522?sharetype=blogdetail&sharerId=130386522&sharerefer=PC&sharesource=liyanggyang&spm=1011.2480.3001.8118)
ExecReload=/bin/kill -s HUP $MAINPID 
LimitNOFILE=infinity 
LimitNPROC=infinity 
LimitCORE=infinity 
TimeoutStartSec=0 
Delegate=yes 
KillMode=process 
Restart=on-failure 
StartLimitBurst=3 
StartLimitInterval=60s 
[Install] 
WantedBy=multi-user.target

继续执行如下命令:

chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
systemctl enable docker
docker --version
Docker version 27.4.1, build b9d17ea

配置加速器加速下载docker镜像

mkdir -p /etc/docker
vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.m.daocloud.io"]
}
#重启服务:
systemctl daemon-reload
systemctl restart docker

二、安装后配置

5、启动

systemctl enable docker && systemctl start docker

6、配置地址

cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF

7、重启

systemctl restart docker

三、如果需要启动防火墙firewalld

docker与firewalld冲突解决

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐