我是靠谱客的博主 友好绿草,这篇文章主要介绍Centos7 安装docker以及新系统可能会出现的问题1.查看centos内核版本(docker要求centos内核版本高于3.10)2.使用root权限更新yum, 确保yum是最新的3.卸载旧版本(如果已经安装过的话)4.安装依赖包5.设置yum源6.查看仓库中所有的docker版本,选择最新版或者特定版本安装7.安装docker8.启动并加入开机启动9.验证安装是否成功(有client和servcie两部分),现在分享给大家,希望可以做个参考。

这个时候centos官方已经主推centos8了,但是8的镜像我下载完已经有8.6G了,相对于7的4G多的空间,再加上企业目前生产主流用的还是7,所以我在虚拟机还是继续玩7。
Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。
我这里用社区版测试

1.查看centos内核版本(docker要求centos内核版本高于3.10)

复制代码
1
2
3
[sandwich@192 ~]$ uname -r 3.10.0-957.el7.x86_64

2.使用root权限更新yum, 确保yum是最新的

[sandwich@192 ~]$ sudo yum update

如果是新用户,有可能没有sudo权限,可以参考我的另外一个文章添加
https://blog.csdn.net/chenshm/article/details/121071492

3.卸载旧版本(如果已经安装过的话)

复制代码
1
2
3
4
5
6
7
8
9
[sandwich@192 ~]$ sudo yum remove docker docker-common docker-selinux docker-engine [sudo] password for sandwich: Loaded plugins: fastestmirror, langpacks No Match for argument: docker No Match for argument: docker-common No Match for argument: docker-selinux No Match for argument: docker-engine No Packages marked for removal

因为我是新机,自然不会有东西卸载

4.安装依赖包

复制代码
1
2
3
# yum-util提供yum-config-manager功能,另外两个是device mapper驱动依赖的 [sandwich@192 ~]$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5.设置yum源

复制代码
1
2
3
4
5
6
[sandwich@192 ~]$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Loaded plugins: fastestmirror, langpacks adding repo from: https://download.docker.com/linux/centos/docker-ce.repo grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo repo saved to /etc/yum.repos.d/docker-ce.repo

6.查看仓库中所有的docker版本,选择最新版或者特定版本安装

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[sandwich@192 ~]$ yum list docker-ce --showduplicates | sort -r * updates: mirrors.aliyun.com Loaded plugins: fastestmirror, langpacks * extras: mirrors.aliyun.com docker-ce.x86_64 3:20.10.9-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.8-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.6-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.5-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.4-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.3-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.2-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.1-3.el7 docker-ce-stable ...

7.安装docker

复制代码
1
2
3
# 由于repo中默认只开启stable仓库,所以这里默认安装最新稳定版本 [sandwich@192 ~]$ sudo yum install docker-ce

8.启动并加入开机启动

复制代码
1
2
3
4
5
[sandwich@192 ~]$ sudo systemctl start docker [sudo] password for sandwich: [sandwich@192 ~]$ sudo systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

9.验证安装是否成功(有client和servcie两部分)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
[sandwich@192 ~]$ docker version Client: Docker Engine - Community Version: 20.10.10 API version: 1.41 Go version: go1.16.9 Git commit: b485636 Built: Mon Oct 25 07:44:50 2021 OS/Arch: linux/amd64 Context: default Experimental: true Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied

由上可以看出来client部分没有问题了,但是service部分似乎遇到permission的问题。
再执行一下docker ps试试,同样的问题

复制代码
1
2
3
[sandwich@192 ~]$ docker ps Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

出现这个问题的原因是:

docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。

解决办法如下:

方案一:使用sudo获取管理员权限,运行docker命令
方案二:添加docker group组,将用户添加进去

我先试试方案一:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[sandwich@192 ~]$ sudo docker version [sudo] password for sandwich: Client: Docker Engine - Community Version: 20.10.10 API version: 1.41 Go version: go1.16.9 Git commit: b485636 Built: Mon Oct 25 07:44:50 2021 OS/Arch: linux/amd64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.10 API version: 1.41 (minimum version 1.12) Go version: go1.16.9 Git commit: e2f740d Built: Mon Oct 25 07:43:13 2021 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.4.11 GitCommit: 5b46e404f6b9f661a205e28d59c982d3634148f8 runc: Version: 1.0.2 GitCommit: v1.0.2-0-g52b36a2 docker-init: Version: 0.19.0 GitCommit: de40ad0 [sandwich@192 ~]$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

这样看起来没有问题了,但是我就不信docker version和docker ps都需要加上sudo.
再试试方案二:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
#添加docker用户组 [sandwich@192 ~]$ sudo groupadd docker groupadd: group 'docker' already exists #将当前登录用户加入docker用户组 [sandwich@192 ~]$ sudo gpasswd -a $USER docker Adding user sandwich to group docker #更新用户组 [sandwich@192 ~]$ newgrp docker #测试当前用户是否可以正常使用docker命令 [sandwich@192 ~]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

至此完成安装。

最后

以上就是友好绿草最近收集整理的关于Centos7 安装docker以及新系统可能会出现的问题1.查看centos内核版本(docker要求centos内核版本高于3.10)2.使用root权限更新yum, 确保yum是最新的3.卸载旧版本(如果已经安装过的话)4.安装依赖包5.设置yum源6.查看仓库中所有的docker版本,选择最新版或者特定版本安装7.安装docker8.启动并加入开机启动9.验证安装是否成功(有client和servcie两部分)的全部内容,更多相关Centos7内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部