一、Docker安装环境检查

以centOS 7为例,首先要确定Linux版本

新版本的Docker对Linux系统版本有一定的要求。如果Linux的发行版系统是centOS,安装最新版的docker需要centOS 7以上的系统。

在Docker安装帮助页面查看支持的系统版本。

可以通过命令查看linux系统信息

cat /etc/os-release

二、docker安装

1、安装必要的一些系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、更新yum索引列表并安装Docker引擎

sudo yum makecache fast

4、yum索引列表没有更新可以直接使用yum makecache(若有报错请翻阅第四部分第二条)

docker-ce:社区版的,docker-ee:企业版的

sudo yum install docker-ce

5、安装过程中会提示确认,输入y以确认

6、开启Docker服务

sudo service docker start

systemctl start docker

7、测试是否安装成功

通过命令

docker version

若安装成功会提示以下信息

8、测试Hello World

docker run hello-world

sudo docker run hello-world

此时会有拉去成功的签名信息以及欢迎语句,当出现"Hello from Docker!”时,代表我们镜像安装成功。

9、查看下载的hello-world镜像

docker images

sudo docker images

10、设置开机自启

systemctl enable docker.service

遇到的问题:

一.重启docker后,docker info 结果最后有这两行:

WARNING: bridge-nf-call-iptables is disabled

WARNING: bridge-nf-call-ip6tables is disabled

原因分析
这两个警告信息出现是因为 Linux 内核的某些网络桥接相关的功能没有被启用。bridge-nf-call-iptables 和 bridge-nf-call-ip6tables 是控制 iptables 是否能够过滤 bridge 网络接口上的流量的设置。如果这些设置被禁用,使用 Docker 创建的网络桥接可能无法通过 iptables 正确过滤网络流量。

要解决这个问题,你需要在 Linux 系统上启用这些功能。这通常可以通过修改 /etc/sysctl.conf 文件或使用 sysctl 命令直接设置来实现。下面是具体的操作步骤:

1)  编辑 sysctl 配置文件: 打开终端并编辑 /etc/sysctl.conf 文件,可以使用 nano 或者其他文本编辑器:

vi  /etc/sysctl.conf
 
# 然后添加以下两行到文件的末尾
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1



2)激活修改: 修改完后,保存文件并关闭编辑器。然后执行以下命令以使更改生效:

sudo sysctl -p


3)  重新启动 Docker: 更改生效后,重启 Docker 服务以确保新的设置被应用:

sudo systemctl restart docker

这样操作之后,再次运行 docker info 应该不会看到之前的警告信息。如果还有问题,可以检查是否所有相关的内核模块都已正确加载。

二.docker run hello-world时报错

Unable to find image 'hello-world:latest' locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": read tcp 192.168.30.91:51536->44.208.254.194:443: read: connection reset by peer.

这个错误表明Docker客户端尝试访问Docker Hub或其他Docker注册中心时出现了问题。具体来说,是在尝试获取注册中心API的响应时遇到了错误。可能的原因包括网络问题、认证问题、注册中心URL不正确或者注册中心服务本身不可用。

解决方法

systemctl status docker
sudo mkdir -p /etc/docker

vim /etc/docker/daemon.json

添加:

{
  "registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/" 
],
 "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
    ],
"debug": true,
"experimental": false
}

重载和重启dockers服务

sudo systemctl daemon-reload
sudo systemctl restart docker
docker info

重新执行

docker run hello-world
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐