当前位置: 首页 > news >正文

CentOS7安装Docker遇到的问题笔记

笔记/朱季谦

以下是笔者本人学习搭建docker过程当中记录的一些实践笔记,过程当中也遇到了一些坑,但都解决了,就此记录,留作以后再次搭建时可以直接参考。

一、首先,先检查CentOS版本,保证在CentOS7版本以上,系统内核在3.10以上——

[root@192 opt]# uname -r
3.10.0-693.el7.x86_64

二、卸载旧的docker版本

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

三、安装需要的依赖包

sudo yum install -y yum-utils

四、设置国内镜像的仓库

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

五、更新yum软件包索引

yum makecache fast 

六、安装docker相关 docker-ce 社区 docker ee企业版

sudo yum install docker-ce docker-ce-cli containerd.io

七、启动docker

systemctl start docker

这时,出现了一个很奇怪的异常:

Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.

不慌,我们先检查一下daemon.json文件格式:

vim /etc/docker/daemon.json

发现这个daemon.json文件里是这样的,也不知道为啥直接更新下载后,它会缺少了部分字符......

image

需要修改成这样,就可以了

{"registry-mirrors": ["http://9600955f.m.daocloud.io"],"insecure-registries": []
}

接下来,可以正常启动docker了——

[root@192 opt]# systemctl daemon-reload
[root@192 opt]# systemctl start docker

如果不报错,输入systemctl status docker.service,若显示以下信息则证明启动安装并启动成功:

image

安装成功后,使用docker version,一般会出现以下信息:

[root@192 opt]# docker version
Client: Docker Engine - CommunityVersion:           20.10.8API version:       1.41Go version:        go1.16.6Git commit:        3967b7dBuilt:             Fri Jul 30 19:55:49 2021OS/Arch:           linux/amd64Context:           defaultExperimental:      trueServer: Docker Engine - CommunityEngine:Version:          20.10.8API version:      1.41 (minimum version 1.12)Go version:       go1.16.6Git commit:       75249d8Built:            Fri Jul 30 19:54:13 2021OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.4.9GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3runc:Version:          1.0.1GitCommit:        v1.0.1-0-g4144b63docker-init:Version:          0.19.0GitCommit:        de40ad0

尝试下拉取hello-world时,发现出现一个超时问题:

[root@192 opt]# docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/library/hello-world/manifests/sha256:393b81f0ea5a98a7335d7ad44be96fe76ca8eb2eaa76950eb8c989ebf2b78ec0": net/http: TLS handshake timeout.
See 'docker run --help'.

这时,需要把daemon.json文件里的信息改一下,改成国内阿里云镜像配置,可以提高拉取速度,避免超时问题,如下:

{"registry-mirrors": ["https://6kx4zyno.mirror.aliyuncs.com"],"insecure-registries": []
}

接着,重启systemctl restart docker,即可。

[root@192 opt]# sudo systemctl restart docker

再试着执行docker run hello-world,这次就正常了:

[root@192 opt]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:393b81f0ea5a98a7335d7ad44be96fe76ca8eb2eaa76950eb8c989ebf2b78ec0
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.

查看一下是否已经成功下载hello-world镜像,可以看到,hello-world镜像已经被拉到了docker当中:

root@192 opt]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   40 hours ago    13.3kB
nginx         latest    f35646e83998   11 months ago   133MB
ubuntu        latest    549b9b86cb8d   21 months ago   64.2MB

相关文章:

  • 4、FFmpeg命令行操作8
  • 基于SSM框架的WEB管理系统
  • 继承【C++】
  • el-tree 与table表格联动
  • 机器学习第10天:集成学习
  • Java变量和数据类型
  • 【算法】区间调度算法
  • mysql5.6 修改密码
  • python运行hhsearch二进制命令的包装器类
  • Kafka、RocketMQ、RabbitMQ的比较总结Kafka、RocketMQ、RabbitMQ的比较总结
  • 【开源】基于JAVA的社区买菜系统
  • Golang基础-面向过程篇
  • [算法学习笔记](超全)概率与期望
  • BUG:编写springboot单元测试,自动注入实体类报空指针异常
  • 深入分析TaskView源码之触摸相关
  • .pyc 想到的一些问题
  • 2018一半小结一波
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • js 实现textarea输入字数提示
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Swift 中的尾递归和蹦床
  • Vue2.0 实现互斥
  • 程序员该如何有效的找工作?
  • 从0实现一个tiny react(三)生命周期
  • 解析 Webpack中import、require、按需加载的执行过程
  • 看域名解析域名安全对SEO的影响
  • 小程序01:wepy框架整合iview webapp UI
  • 【云吞铺子】性能抖动剖析(二)
  • ​【已解决】npm install​卡主不动的情况
  • ​MySQL主从复制一致性检测
  • #Z0458. 树的中心2
  • $(function(){})与(function($){....})(jQuery)的区别
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (done) 两个矩阵 “相似” 是什么意思?
  • (pytorch进阶之路)扩散概率模型
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (接口自动化)Python3操作MySQL数据库
  • (转)http-server应用
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • (转载)Google Chrome调试JS
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET中winform传递参数至Url并获得返回值或文件
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @SentinelResource详解
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [BZOJ] 2044: 三维导弹拦截
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [C语言]——柔性数组
  • [Electron]ipcMain.on和ipcMain.handle的区别