笔记/朱季谦

以下是笔者本人学习搭建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文件里是这样的,也不知道为啥直接更新下载后,它会缺少了部分字符......

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

{"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,若显示以下信息则证明启动安装并启动成功:

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

[root@192 opt]# docker version
Client: Docker Engine - Community
Version: 20.10.8
API version: 1.41
Go version: go1.16.6
Git commit: 3967b7d
Built: Fri Jul 30 19:55:49 2021
OS/Arch: linux/amd64
Context: default
Experimental: true Server: Docker Engine - Community
Engine:
Version: 20.10.8
API version: 1.41 (minimum version 1.12)
Go version: go1.16.6
Git commit: 75249d8
Built: Fri Jul 30 19:54:13 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.9
GitCommit: e25210fe30a0a703442421b0f60afac609f950a3
runc:
Version: 1.0.1
GitCommit: v1.0.1-0-g4144b63
docker-init:
Version: 0.19.0
GitCommit: 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:latest Hello 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

最新文章

  1. iOS:JSON格式字符串转字典,字典转JSON格式字符串
  2. Swift3.0基础语法学习<三>
  3. Intellij idea开发Hadoop MapReduce程序
  4. 【转载】linux内核笔记之进程地址空间
  5. 【转】个人最常用的Eclipse快捷键
  6. PHP编码规范整理,很全很实用(图文版)
  7. textarea 输入框限制字数
  8. 标准C函数库的使用方法
  9. 四.redis 事务
  10. shell脚本字符串截取
  11. zabbix3.2.3安装部署
  12. Vue常用经典开源项目汇总参考-海量
  13. iptables实用教程(二):管理链和策略
  14. global与nonlocal关键字总结
  15. myeclipse一直停留在Loading workbench界面上的处理办法
  16. CodeForces - 1013C C - Photo of The Sky 贪心
  17. java如何编写多线程
  18. Avos Cloud 的 ParseObject的创建与数据存储检索
  19. ReactiveObjC
  20. react-native android app名字 app包名、图标和启动图片设置

热门文章

  1. innodb是如何存数据的?yyds
  2. kivy之TextInput属性实操练习
  3. 安装RHEL7配置本地yum源 -- yum不能安装时,在本地安装,亲测成功
  4. Java:学习什么是多线程
  5. 基于typescript编写vue的ts文件语法模板
  6. 怎样在自己的 Web 中加入强大的日志系统系统?slf4j 的日志插件必须要知道!
  7. C++CLR类库封装Native类库并用C#调用 - 草稿
  8. 【gdal】创建GeoTiff栅格数据
  9. 【.Net】深入理解C#的装箱和拆箱
  10. Jmeter的默认字体和窗口的设置方法(一次改动,永久生效!!!)