我是靠谱客的博主 懵懂大船,最近开发中收集的这篇文章主要介绍CentOS8下安装Docker,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在安装之前,我们先了解什么是Docker

什么是Docker?

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

1、Docker是基于Go语言实现的云开源项目。
2、Docker的主要目标是,“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的App(可以是一个Web应用或数据库应用等)及其运行环境能够做到“一次封装,到处运行”。

Docke能干什么?

传统虚拟技术,比如VMware,它是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程。【可以看出,虚拟机需要的内存大,而且配置麻烦】

而容器内的应用进程直接运行于宿主的内核,容器没有自己的内核,而且没有进行硬件模拟,因此,容器要比传统虚拟机更轻便。
每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会互相影响,能区分计算资源。

Docker主要的思想就是来自于集装箱,Docker采用隔离机制,对每个应用进行打包装箱,每个箱子都是互相隔离订单,可以理解为是一个个的镜像,镜像内部附带有运行环境。

容器化技术并不是模拟的一个完整的操作系统

Docker三要素

镜像(image):docker镜像就好比一个模板,可以通过这个模板来创建容器服务

容器(container): docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建

**仓库(repository):**仓库,顾名思义,就是存放镜像的地方,其中,仓库分公有仓库和私有仓库

CentOS8安装Docker

首先查看内核

  • uname - r
    uname 用于打印当前系统相关信息,如内核版本号、硬件架构、主机名称和操作系统类型等】
4.18.0-80.el8.x86_64

查看内核信息

  • cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

使用Docker仓库进行安装
Docker分为社区版ce和企业版ee,我们选择社区版

第一,先查看是否存在Podman,如果有,就先删除
不删除的话,会与Docker的安装包有如下的冲突:

 - 软件包 containerd.io-1.4.9-3.1.el8.x86_64 与 runc(由 runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64 提供)冲突
- 软件包 containerd.io-1.4.9-3.1.el8.x86_64 取代了 runc(由 runc-1.0.1-3.module_el8.5.0+870+f792de72.x86_64 提供)
- 软件包 containerd.io-1.4.9-3.1.el8.x86_64 与 runc(由 runc-1.0.1-5.module_el8.5.0+878+851f435b.x86_64 提供)冲突

查看是否存在Podman

[root@localhost yum.repos.d]# rpm -q podman
podman-2.0.5-5.module_el8.3.0+512+b3b58dca.x86_64

删除Podman

yum erase podman buildah

一路选择y即可

第二步,安装需要的软件包:yum-utils、device-mapper-persistent-data和lvm2

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

详情如下:

Repository AppStream is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository PowerTools is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
CentOS-8-stream - AppStream - mirrors.aliyun.com
8.2 kB/s | 4.4 kB
00:00
CentOS-8-stream - AppStream - mirrors.aliyun.com
659 kB/s |
22 MB
00:34
CentOS-8-stream - Base - mir
[
===
] ---
B/s |
0
B
--:-- ETA
CentOS-8-stream - Base - mirrors.aliyun.com
9.9 kB/s | 3.9 kB
00:00
CentOS-8-stream - Base - mirrors.aliyun.com
919 kB/s |
22 MB
00:24
CentOS-8-stream - Extras - mirrors.aliyun.com
10 kB/s | 2.9 kB
00:00
Docker CE Stable - x86_64
13 kB/s | 3.5 kB
00:00
Docker CE Stable - x86_64
35 kB/s |
25 kB
00:00
Extra Packages for Enterprise Linux 8 - x86_64
6.5 kB/s |
10 kB
00:01
Extra Packages for Enterprise Linux 8 - x86_64
1.8 MB/s |
11 MB
00:06
Extra Packages for Enterprise Linux Modular 8 - x86_64
7.0 kB/s | 9.8 kB
00:01
Extra Packages for Enterprise Linux Modular 8 - x86_64
456 kB/s | 1.0 MB
00:02
软件包 yum-utils-4.0.21-11.el8.noarch 已安装。
软件包 device-mapper-persistent-data-0.9.0-6.el8.x86_64 已安装。
软件包 lvm2-8:2.03.14-3.el8.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!

第三步,设置国内下载镜像,例如阿里云仓库

yum-config-manager 
--add-repo 
#这个是默认的仓库
https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager 
--add-repo 
#设置阿里云仓库
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

结果如下:

Repository AppStream is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository PowerTools is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
添加仓库自:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

第四步:安装docker engine,包括docker-ce、docker-ce-cli和containerd.io

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

结果如下:

Repository AppStream is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository PowerTools is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
上次元数据过期检查:0:01:35 前,执行于 20220522日 星期日 092418秒。
依赖关系解决。
================================================================================================
软件包
架构
版本
仓库
大小
================================================================================================
安装:
containerd.io
x86_64 1.6.4-3.1.el8
docker-ce-stable
33 M
docker-ce
x86_64 3:20.10.16-3.el8
docker-ce-stable
22 M
docker-ce-cli
x86_64 1:20.10.16-3.el8
docker-ce-stable
29 M
升级:
libsemanage
x86_64 2.9-8.el8
base
168 k
policycoreutils
x86_64 2.9-19.el8
base
374 k
policycoreutils-python-utils
noarch 2.9-19.el8
base
253 k
python3-libsemanage
x86_64 2.9-8.el8
base
128 k
python3-policycoreutils noarch 2.9-19.el8
base
2.2 M
selinux-policy
noarch 3.14.3-98.el8
base
647 k
selinux-policy-targeted noarch 3.14.3-98.el8
base
15 M
安装依赖关系:
container-selinux
noarch 2:2.180.0-1.module_el8.7.0+1106+45480ee0 AppStream
59 k
docker-ce-rootless-extras
x86_64 20.10.16-3.el8
docker-ce-stable 4.7 M
fuse-overlayfs
x86_64 1.8.2-1.module_el8.7.0+1106+45480ee0
AppStream
73 k
fuse3
x86_64 3.2.1-12.el8
base
50 k
fuse3-libs
x86_64 3.3.0-15.el8
base
95 k
libcgroup
x86_64 0.41-19.el8
base
70 k
libslirp
x86_64 4.4.0-1.module_el8.6.0+926+8bef8ae7
AppStream
70 k
slirp4netns
x86_64 1.1.8-2.module_el8.7.0+1106+45480ee0
AppStream
51 k
安装弱的依赖:
docker-scan-plugin
x86_64 0.17.0-3.el8
docker-ce-stable 3.8 M
事务概要
================================================================================================
安装
12 软件包
升级
7 软件包
总下载:112 M
确定吗?[y/N]: y
下载软件包:
(1/19): fuse-overlayfs-1.8.2-1.module_el8.7.0+1106+45480ee0.x86 156 kB/s |
73 kB
00:00
(2/19): container-selinux-2.180.0-1.module_el8.7.0+1106+45480ee 122 kB/s |
59 kB
00:00
(3/19): libslirp-4.4.0-1.module_el8.6.0+926+8bef8ae7.x86_64.rpm 139 kB/s |
70 kB
00:00
(4/19): slirp4netns-1.1.8-2.module_el8.7.0+1106+45480ee0.x86_64 266 kB/s |
51 kB
00:00
(5/19): fuse3-3.2.1-12.el8.x86_64.rpm
259 kB/s |
50 kB
00:00
(6/19): fuse3-libs-3.3.0-15.el8.x86_64.rpm
325 kB/s |
95 kB
00:00
(7/19): libcgroup-0.41-19.el8.x86_64.rpm
225 kB/s |
70 kB
00:00
(8/19): docker-ce-20.10.16-3.el8.x86_64.rpm
947 kB/s |
22 MB
00:23
(9/19): docker-ce-rootless-extras-20.10.16-3.el8.x86_64.rpm
870 kB/s | 4.7 MB
00:05
(10/19): docker-ce-cli-20.10.16-3.el8.x86_64.rpm
1.0 MB/s |
29 MB
00:30
(11/19): libsemanage-2.9-8.el8.x86_64.rpm
382 kB/s | 168 kB
00:00
(12/19): policycoreutils-2.9-19.el8.x86_64.rpm
555 kB/s | 374 kB
00:00
(13/19): policycoreutils-python-utils-2.9-19.el8.noarch.rpm
532 kB/s | 253 kB
00:00
(14/19): python3-libsemanage-2.9-8.el8.x86_64.rpm
385 kB/s | 128 kB
00:00
(15/19): docker-scan-plugin-0.17.0-3.el8.x86_64.rpm
1.1 MB/s | 3.8 MB
00:03
(16/19): selinux-policy-3.14.3-98.el8.noarch.rpm
541 kB/s | 647 kB
00:01
(17/19): python3-policycoreutils-2.9-19.el8.noarch.rpm
608 kB/s | 2.2 MB
00:03
(18/19): containerd.io-1.6.4-3.1.el8.x86_64.rpm
899 kB/s |
33 MB
00:37
(19/19): selinux-policy-targeted-3.14.3-98.el8.noarch.rpm
601 kB/s |
15 MB
00:25
------------------------------------------------------------------------------------------------
总计
1.9 MB/s | 112 MB
01:00
Docker CE Stable - x86_64
1.3 kB/s | 1.6 kB
00:01
导入 GPG 公钥 0x621E9F35:
Userid: "Docker Release (CE rpm) <docker@docker.com>"
指纹: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
来自: https://download.docker.com/linux/centos/gpg
确定吗?[y/N]: y
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中
:
1/1
运行脚本: docker-scan-plugin-0.17.0-3.el8.x86_64
1/1
安装
: docker-scan-plugin-0.17.0-3.el8.x86_64
1/26
运行脚本: docker-scan-plugin-0.17.0-3.el8.x86_64
1/26
安装
: docker-ce-cli-1:20.10.16-3.el8.x86_64
2/26
运行脚本: docker-ce-cli-1:20.10.16-3.el8.x86_64
2/26
升级
: libsemanage-2.9-8.el8.x86_64
3/26
升级
: policycoreutils-2.9-19.el8.x86_64
4/26
运行脚本: policycoreutils-2.9-19.el8.x86_64
4/26
升级
: selinux-policy-3.14.3-98.el8.noarch
5/26
运行脚本: selinux-policy-3.14.3-98.el8.noarch
5/26
运行脚本: selinux-policy-targeted-3.14.3-98.el8.noarch
6/26
升级
: selinux-policy-targeted-3.14.3-98.el8.noarch
6/26
运行脚本: selinux-policy-targeted-3.14.3-98.el8.noarch
6/26
^A^H^H^H
升级
: python3-libsemanage-2.9-8.el8.x86_64
7/26
升级
: python3-policycoreutils-2.9-19.el8.noarch
8/26
升级
: policycoreutils-python-utils-2.9-19.el8.noarch
9/26
运行脚本: container-selinux-2:2.180.0-1.module_el8.7.0+1106+45480ee0.noarch
10/26
安装
: container-selinux-2:2.180.0-1.module_el8.7.0+1106+45480ee0.noarch
10/26
运行脚本: container-selinux-2:2.180.0-1.module_el8.7.0+1106+45480ee0.noarch
10/26
安装
: containerd.io-1.6.4-3.1.el8.x86_64
11/26
运行脚本: containerd.io-1.6.4-3.1.el8.x86_64
11/26
运行脚本: libcgroup-0.41-19.el8.x86_64
12/26
安装
: libcgroup-0.41-19.el8.x86_64
12/26
运行脚本: libcgroup-0.41-19.el8.x86_64
12/26
安装
: fuse3-libs-3.3.0-15.el8.x86_64
13/26
运行脚本: fuse3-libs-3.3.0-15.el8.x86_64
13/26
安装
: fuse3-3.2.1-12.el8.x86_64
14/26
安装
: fuse-overlayfs-1.8.2-1.module_el8.7.0+1106+45480ee0.x86_64
15/26
运行脚本: fuse-overlayfs-1.8.2-1.module_el8.7.0+1106+45480ee0.x86_64
15/26
安装
: libslirp-4.4.0-1.module_el8.6.0+926+8bef8ae7.x86_64
16/26
安装
: slirp4netns-1.1.8-2.module_el8.7.0+1106+45480ee0.x86_64
17/26
安装
: docker-ce-rootless-extras-20.10.16-3.el8.x86_64
18/26
运行脚本: docker-ce-rootless-extras-20.10.16-3.el8.x86_64
18/26
安装
: docker-ce-3:20.10.16-3.el8.x86_64
19/26
运行脚本: docker-ce-3:20.10.16-3.el8.x86_64
19/26
清理
: selinux-policy-targeted-3.14.1-61.el8.noarch
20/26
运行脚本: selinux-policy-targeted-3.14.1-61.el8.noarch
20/26
清理
: selinux-policy-3.14.1-61.el8.noarch
21/26
运行脚本: selinux-policy-3.14.1-61.el8.noarch
21/26
清理
: policycoreutils-python-utils-2.8-16.1.el8.noarch
22/26
清理
: python3-policycoreutils-2.8-16.1.el8.noarch
23/26
清理
: python3-libsemanage-2.8-5.el8.x86_64
24/26
运行脚本: policycoreutils-2.8-16.1.el8.x86_64
25/26
清理
: policycoreutils-2.8-16.1.el8.x86_64
25/26
清理
: libsemanage-2.8-5.el8.x86_64
26/26
运行脚本: container-selinux-2:2.180.0-1.module_el8.7.0+1106+45480ee0.noarch
26/26
运行脚本: libsemanage-2.8-5.el8.x86_64
26/26
验证
: container-selinux-2:2.180.0-1.module_el8.7.0+1106+45480ee0.noarch
1/26
验证
: fuse-overlayfs-1.8.2-1.module_el8.7.0+1106+45480ee0.x86_64
2/26
验证
: libslirp-4.4.0-1.module_el8.6.0+926+8bef8ae7.x86_64
3/26
验证
: slirp4netns-1.1.8-2.module_el8.7.0+1106+45480ee0.x86_64
4/26
验证
: fuse3-3.2.1-12.el8.x86_64
5/26
验证
: fuse3-libs-3.3.0-15.el8.x86_64
6/26
验证
: libcgroup-0.41-19.el8.x86_64
7/26
验证
: containerd.io-1.6.4-3.1.el8.x86_64
8/26
验证
: docker-ce-3:20.10.16-3.el8.x86_64
9/26
验证
: docker-ce-cli-1:20.10.16-3.el8.x86_64
10/26
验证
: docker-ce-rootless-extras-20.10.16-3.el8.x86_64
11/26
验证
: docker-scan-plugin-0.17.0-3.el8.x86_64
12/26
验证
: libsemanage-2.9-8.el8.x86_64
13/26
验证
: libsemanage-2.8-5.el8.x86_64
14/26
验证
: policycoreutils-2.9-19.el8.x86_64
15/26
验证
: policycoreutils-2.8-16.1.el8.x86_64
16/26
验证
: policycoreutils-python-utils-2.9-19.el8.noarch
17/26
验证
: policycoreutils-python-utils-2.8-16.1.el8.noarch
18/26
验证
: python3-libsemanage-2.9-8.el8.x86_64
19/26
验证
: python3-libsemanage-2.8-5.el8.x86_64
20/26
验证
: python3-policycoreutils-2.9-19.el8.noarch
21/26
验证
: python3-policycoreutils-2.8-16.1.el8.noarch
22/26
验证
: selinux-policy-3.14.3-98.el8.noarch
23/26
验证
: selinux-policy-3.14.1-61.el8.noarch
24/26
验证
: selinux-policy-targeted-3.14.3-98.el8.noarch
25/26
验证
: selinux-policy-targeted-3.14.1-61.el8.noarch
26/26
已升级:
libsemanage-2.9-8.el8.x86_64
policycoreutils-2.9-19.el8.x86_64
policycoreutils-python-utils-2.9-19.el8.noarch
python3-libsemanage-2.9-8.el8.x86_64
python3-policycoreutils-2.9-19.el8.noarch
selinux-policy-3.14.3-98.el8.noarch
selinux-policy-targeted-3.14.3-98.el8.noarch
已安装:
container-selinux-2:2.180.0-1.module_el8.7.0+1106+45480ee0.noarch
containerd.io-1.6.4-3.1.el8.x86_64
docker-ce-3:20.10.16-3.el8.x86_64
docker-ce-cli-1:20.10.16-3.el8.x86_64
docker-ce-rootless-extras-20.10.16-3.el8.x86_64
docker-scan-plugin-0.17.0-3.el8.x86_64
fuse-overlayfs-1.8.2-1.module_el8.7.0+1106+45480ee0.x86_64
fuse3-3.2.1-12.el8.x86_64
fuse3-libs-3.3.0-15.el8.x86_64
libcgroup-0.41-19.el8.x86_64
libslirp-4.4.0-1.module_el8.6.0+926+8bef8ae7.x86_64
slirp4netns-1.1.8-2.module_el8.7.0+1106+45480ee0.x86_64
完毕!

第五步,启动Docker

systemctl start docker

第六步,验证安装是否成功

docker run hello-world

结果如下:


Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/

如果上面的hello实例报如下的错误:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17
Status: Downloaded newer image for hello-world:latest
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/moby/233c9b6503a6c2f7e6b093011350d5e42c62854dc183b83b3d666a04da27febe/log.json: no such file or directory): runc did not terminate successfully: exit status 127: unknown.

则可以进行如下命令安装

yum install libseccomp-devel

也可以重新配置阿里云镜像,具体就不再此进行说明

最后

以上就是懵懂大船为你收集整理的CentOS8下安装Docker的全部内容,希望文章能够帮你解决CentOS8下安装Docker所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部