RHEL8安装docker-ce

Docker解决了什么问题

系统版本声明: RHEL8
Docker解决了:“程序在我这跑的好好的,在你那怎么就不能运行了呢!”
解决了环境一致性的问题.
容器就是将一套运行环境打包成一个镜像.实现开箱即用.
容器不是虚拟机,与宿主机共享一个内核.
在这里插入图片描述


安装DOcker

参考文档: https://help.aliyun.com/document_detail/264695.html#section-m0l-g22-ska


关闭防火墙和SELinux

# 关闭防火墙和SELinux
systemctl disable --now firewalld

## 清空现有的所有iptables策略
iptables -F

# 禁用邮件服务
systemctl disable --now postfix

# 禁用selinux
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
# 立即禁用临时SElinux
setenforce 0

配置宿主机网卡转发

参考: https://feisky.gitbooks.io/sdn/content/linux/params.html


加载br_netfilter内核

br_netfilter内核模块,用于在网络桥接设备启用网络过滤功能

# 加载br_netfilter内核
modprobe br_netfilter

# 查看模块是否加载
lsmod br_netfilter

在这里插入图片描述

ls /proc/sys/net/bridge
bridge-nf-call-arptables bridge-nf-filter-pppoe-tagged
bridge-nf-call-ip6tables bridge-nf-filter-vlan-tagged
bridge-nf-call-iptables bridge-nf-pass-vlan-input-dev

在这里插入图片描述


开启网卡转发功能

vim /etc/sysctl.d/k8s.conf

# 开启ipv4转发功能
net.ipv4.ip_forward = 1

# 启用 Linux 内核对所有网络接口的 Proxy ARP 功能
net.ipv4.conf.all.proxy_arp = 1

# 在ip6tables链中过滤IPv6包
net.bridge.bridge-nf-call-ip6tables = 1
# 在iptables链中过滤IPv4包
net.bridge.bridge-nf-call-iptables = 1
# netfilter防火墙内核模块最大跟踪连接数
net.netfilter.nf_conntrack_max=2310720

# 禁用用swap
#vm.swappiness = 0

# 关闭IPV6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

生效sysctl配置

# 使内核配置生效
sysctl -p

卸载旧版本Docker-CE(如果有)

https://docs.docker.com/engine/install/centos/

# 卸载旧版本Docker-CE
sudo yum -y remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc


# 新版本卸载
yum -y autoremove docker-ce docker-scan-plugin docker-compose-plugin docker-ce-cli docker-buildx-plugin

# 查看卸载完没有
rpm -qa |grep docker

添加docker-ce的软件仓库(aliyun)

# 安装yum-utils和dnf-utils
yum install -y yum-utils dnf-utils

# docker官方源
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 添加docker-ce的软件仓库(国内源)
dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 查看repolist中docker-ce仓库是否添加成功
yum repolist

卸载podman冲突包(Centos8无需执行)

# 卸载podman冲突包
yum erase podman buildah -y

#方法2: 安装时使用--allowerasing参数自动替换冲突包
yum -y install docker-ce --allowerasing

安装docker-ce

# 安装docker-ce
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

开机自启动docker服务并现在启动

# 开机自启动并现在启动docker服务
systemctl enable --now docker

# 查看docker版本
docker --version

配置docker存储目录

有些服务器分区的var目录不是独立的分区.而是和/分区共用的.而docker默认的存储路径是在/var/lib/docker,这就很容易导致将/分区磁盘空间占满.


查看docker的默认存储目录

# 获取有关Docker守护程序(Docker Daemon)的详细信息
docker info

# 默认目录是:
## Docker Root Dir: /var/lib/docker

修改docker主配置文件

# 创建/etc/docker目录(如果没有)
mkdir -p /etc/docker

# 写入配置信息
vim /etc/docker/daemon.json

配置如下:

{
  "data-root": "/data/docker"
}

重启docker服务

# 重载服务(如果出错就执行)
systemctl daemon-reload

# 重启docker服务
systemctl restart docker

查看新的存储目录

docker info

# 默认目录是:
## Docker Root Dir: /data/docker

配置国内镜像加速源

docker的默认镜像源在美国,国内下载会很慢,可以修改为国内的镜像源地址.


编辑docker配置文件

# 编辑docker配置文件
vim /etc/docker/daemon.json 

配置内容如下:

{
  "registry-mirrors": [
    "https://isdp30x2.mirror.aliyuncs.com"
  ]
}

如果和存储目录一起修改

json格式注意格式

{
  "data-root": "/data/docker",
  "registry-mirrors": [
    "https://isdp30x2.mirror.aliyuncs.com"
  ]
}

改完要重启docker服务

# 重载服务(如果出错就执行)
sudo systemctl daemon-reload

# 重启docker服务 
sudo systemctl restart docker

拉取测试镜像

[rhel8 root ~]# docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

其他配置参数

# 创建/etc/docker目录
sudo mkdir -p /etc/docker

# 添加配置
## 官方建议使用overlay2
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "experimental": true,
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

# 重新加载服务
sudo systemctl daemon-reload

# 重启docker服务
sudo systemctl restart docker

配置代理拉取海外镜像

https://blog.csdn.net/omaidb/article/details/122102988


免root运行docker

# 将当前(普通)用户添加到docker组
sudo usermod -aG docker $USER
## 或
# 将当前(普通)用户添加到docker组
sudo gpasswd -a $USER docker

# 测试普通用户是否可以执行docker
## 登入dockre组
newgrp docker

## 执行docker命令启动一个容器
docker run hello-world

## 删除容器
docker run --rm hello-world
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
你可以尝试以下步骤来解决无法安装 Docker CE 的问题: 1. 确保你的操作系统版本是支持 Docker CE 的。Docker CE 支持多个 Linux 发行版,例如 CentOS、Fedora、Ubuntu 等。你需要确保你的操作系统版本和 Docker CE 的兼容性。 2. 确保你的系统已经更新到最新版本。使用以下命令来更新系统软件包: - 对于 CentOS/RHEL:sudo yum update - 对于 Ubuntu/Debian:sudo apt update && sudo apt upgrade 3. 确保已经添加了 Docker 的官方存储库。使用以下命令来添加 Docker 存储库: - 对于 CentOS/RHEL:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - 对于 Ubuntu/Debian:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 4. 确保已经安装了必要的依赖软件包。使用以下命令安装 Docker CE 的依赖软件包: - 对于 CentOS/RHEL:sudo yum install -y yum-utils device-mapper-persistent-data lvm2 - 对于 Ubuntu/Debian:sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common 5. 最后,使用以下命令来安装 Docker CE: - 对于 CentOS/RHEL:sudo yum install docker-ce docker-ce-cli containerd.io - 对于 Ubuntu/Debian:sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io 在执行这些步骤之前,请确保你具有管理员权限(使用 sudo)并且网络连接正常。如果问题仍然存在,请提供更多详细的错误信息,以便我们可以更好地帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值