一、Linux 中安装 docker及问题处理

一、准备工作 

selinux 防火墙的设置:

[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

Firewalld 防火墙的设置:

[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld

如果要将容器内的服务可以使外部访问,需要添加策略(举例):

firewall-cmd 的基本使用:
开启端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent 永久生效,没有此参数重启后失效)
重新载入:firewall-cmd --reload 修改 firewall-cmd 配置后必须重启
查看:firewall-cmd --zone= public --query-port=80/tcp
删除:firewall-cmd --zone= public --remove-port=80/tcp --permanent
查看所有打开的端口:firewall-cmd --zone=public --list-ports

二、安装docker

1、安装需要的软件包:

[root@localhost ~]# yum install yum-utils -y

2、配置 docker 源

阿里云的源

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 使用yum包管理器进行docker软件包的搜索

[root@localhost ~]# yum search docker

3、安装docker

问题一:

[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io -y

 安装过程中可能有这个问题warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-buildx-plugin-0.11.2-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY01:04 ETA docker-buildx-plugin-0.11.2-1.el7.x86_64.rpm 的公钥尚未安装

这是因为安装一个RPM软件包,但是该软件包的签名公钥尚未被安装到系统中。在安装RPM软件包时,系统会验证软件包的签名以确保其来源可信。如果软件包的签名公钥尚未安装,系统就无法验证软件包的真实性。

可以将docker-ce的gpg验证关闭

[root@localhost ~]# vim /etc/yum.repos.d/docker-ce.repo

如果修改不了的话:sudo chmod 777 /etc/yum.repos.d/docker-ce.repo 

然后再执行下载操作即可

问题二:

这个报错是由于 container-selinux 版本过低或者未安装所致。一般的 yum 源中找不到 container-selinux 包,因此需要安装 epel 源才能使用 yum 安装 container-selinux。

wget安装
[root@localhost ~]# yum -y install wget

下载epel源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

安装源以及依赖包container-selinux
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]#  yum makecache
[root@localhost ~]#  yum -y install container-selinux

然后再执行下载操作即可

4、启动docker

[root@localhost ~]# systemctl start docker && systemctl enable docker

查看状态

[root@localhost ~]# systemctl status  docker

 查看docker信息

[root@localhost ~]# docker info

5、配置国内镜像源

        Docker在默认安装之后,通过命令docker pull 拉取镜像时,默认访问docker hub上的镜像,在国内网络环境下,下载时间不能保证,所以要配置国内镜像仓库;

新建或编辑daemon.json

[root@localhost docker]# vim /etc/docker/daemon.json

daemon.json中编辑如下(可供选择)

中科大
{
    "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn" ]
}
华为云
{
    "registry-mirrors": [ "https://9871944d085e4817a11247169cc16509.mirror.swr.myhuaweicloud.com" ]
}
阿里
{

 "registry-mirrors": ["https://02xz0m84.mirror.aliyuncs.com"]
}

选择一个就行

加载配置文件并重启docker

[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl restart docker

查看是否修改成功

如果执行docker info出现如下警告 

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

这些警告是由于Docker发现在您的系统上bridge-nf-call-iptables和bridge-nf-call-ip6tables被禁用了。这些警告通常意味着Docker可能无法正确配置网络规则,这可能会导致某些网络功能无法正常工作。您可以通过启用这些内核模块来解决这些警告。

可以使用以下命令来启用这些内核模块:

[root@localhost ~]# vim /etc/sysctl.conf

添加以下内容:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@localhost ~]# sysctl -p

 

6、查验docker是否可以拉取镜像

启动 hello-world 容器
可以出现即安装成功~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

赵唯一

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值