1. 前言
本文主要讲解如何在RHEL8或者CentOS8系统上安装Docker。本教程将指导您如何在RHEL8或CentOS8。Docker在RHEL8上没有得到官方支持,因为它已经被红帽工具-buildah和podman所取代。我们将在另一篇文章中讨论buildah和podman。
但如果你每天都使用Docker,却不能立即切换到buildah和podman,那该怎么办呢?不要担心,因为有办法安装Docker和Docker组成的RHEL8或CentOS8。Docker是一个允许您在容器中创建、部署和运行应用程序的工具。容器允许开发人员将应用程序与其依赖项打包,并将其作为单个包发出。容器通常用于微服务环境。
Docker部件和术语
在深入了解安装和使用示例之前,我们需要澄清一些Docker特有的术语。下面是Docker生态系统中常用的术语。
- Docker daemon: 这也被称为Docker引擎,它是一个后台进程,运行在负责构建和运行容器的主机系统上。
- Docker Client: 这是用户用来与Docker守护进程交互的命令行工具。
- Docker Image: 镜像是一个不可变的文件,本质上是容器的快照。docker镜像具有运行应用程序所需的文件系统和应用程序依赖项。
- Docker container: 这是一个正在运行的docker镜像实例,带有一个应用程序及其依赖项。每个容器都有唯一的进程ID,并且与其他容器隔离。容器共享的唯一东西是内核。
- Docker registry: 这是一个负责管理Docker容器镜像的存储和交付的应用程序。它可以是私有的,也可以是公共的。
2. 在RHEL8/CentOS8上安装Docker CE
到目前为止,我们已经介绍了docker的介绍和术语。我们应该准备好在RHEL8或CentOS8上安装Docker CE。我们将开始安装Docker。
有两个版本的Docker可用。
Community Edition (CE): 对于希望开始使用Docker并尝试基于容器的应用程序的个人开发人员和小型团队来说,这是一个理想的选择。
Enterprise Edition (EE): 为企业开发和IT团队设计,这些团队在生产环境中构建、交付和运行业务关键型应用程序。
Docker企业版需要一个活动许可证才能使用。在本指南中,我们将在RHEL8或CentOS8上安装Docker CE。在安装Docker库之前,让我们先添加它。
sudo curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
这个命令将把Docker存储库文件下载到/etc/yum.repos.d/docker-ce.repo
。让我们更新RPM索引缓存。
sudo yum makecache
Updating Subscription Management repositories.
Updating Subscription Management repositories.
Docker CE Stable – x86_64 6.1 kB/s | 14 kB 00:02
Red Hat Enterprise Linux 8 for x86_64 – AppStream Beta (RPMs) 1.8 kB/s | 4.1 kB 00:02
Red Hat Enterprise Linux 8 for x86_64 – BaseOS Beta (RPMs) 3.5 kB/s | 4.1 kB 00:01
Metadata cache created.
最后,通过在终端中运行下面的命令来安装Docker CE。
sudo dnf -y install docker-ce --nobest
启动并使Docker服务在引导时启动。
sudo systemctl enable --now docker
docker服务状态应该指示正在运行。
systemctl status docker
● docker.service – Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2019-03-10 09:52:54 EAT; 29s ago
Docs: https://docs.docker.com
Main PID: 2875 (dockerd)
Tasks: 21 (limit: 11510)
Memory: 48.3M
CGroup: /system.slice/docker.service
├─2875 /usr/bin/dockerd
└─2882 docker-containerd –config /var/run/docker/containerd/containerd.toml
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261477553+03:00" level=info msg="ClientConn switching balancer to \"pick_first\"">
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261506651+03:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc>
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261707466+03:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0xc>
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.261722124+03:00" level=info msg="Loading containers: start."
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.637205789+03:00" level=info msg="Default bridge (docker0) is assigned with an IP >
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.835734889+03:00" level=info msg="Loading containers: done."
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.857760401+03:00" level=info msg="Docker daemon" commit=d7080c1 graphdriver(s)=ove>
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.858095579+03:00" level=info msg="Daemon has completed initialization"
Mar 10 09:52:54 rhel8.local dockerd[2875]: time="2019-03-10T09:52:54.915887172+03:00" level=info msg="API listen on /var/run/docker.sock"
Mar 10 09:52:54 rhel8.local systemd[1]: Started Docker Application Container Engine.
docker group
被创建,但是没有用户被添加到组中。将您的用户添加到此组以运行不带sudo的docker命令。
sudo usermod -aG docker $USER
id $USER
uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),10(wheel),984(docker)
退出并再次登录使用Docker而不使用sudo。安装的Docker版本可以通过以下方式检查:
newgrp docker
docker version
Client:
Version: 18.06.3-ce
API version: 1.38
Go version: go1.10.3
Git commit: d7080c1
Built: Wed Feb 20 02:26:51 2019
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.3-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: d7080c1
Built: Wed Feb 20 02:28:17 2019
OS/Arch: linux/amd64
Experimental: false
3. 在RHEL8或者CentOS8系统上拉取测试docker镜像
最后一步是在RHEL8或者CentOS8系统上通过下载测试版的docker容器来测试安装。
docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest
查看已经下载的Docker列表:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 5cb3aa00f899 2 days ago 5.53MB
hello-world latest fce289e99eb9 2 months ago 1.84kB
通过从下载的镜像运行alpine容器来验证Docker CE是否正常工作。
docker run -it --rm alpine /bin/sh
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
v3.9.2-1-g592d872fb8 [http://dl-cdn.alpinelinux.org/alpine/v3.9/main]
v3.9.2-2-ge7dc3349a9 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community]
OK: 9754 distinct packages available
/ # exit
4. 在RHEL8或者CentOS8上安装Docker Compose
我们已经在RHEL8或者CentOS 8上安装并运行了Docker,现在让我们把档位改为Docker合成。Docker组合是一个用于定义和运行多容器Docker应用程序的工具。
应用程序服务是使用组合文件配置的。与运行docker命令不同,从配置创建和启动所有服务只需要一个命令。Docker Compose是用于开发、测试和准备环境以及CI工作流的优秀工具。
5. 在RHEL8或者CentOS 8上下载Docker Compose
请遵循我们在在RHEL8或者CentOS 8 Linux上安装最新Docker Compose的单独指南。
6. 在RHEL8或者CentOS 8上安装Docker UI -可选
如果你需要Docker管理界面,它可以让你轻松地管理不同的Docker主机和容器,请给Portainer一个尝试。它易于安装和使用。
7. 在RHEL8或者CentOS 8上监控Docker containers
可以在RHEL8或者CentOS 8上使用Netdata或Ctop或Prometheus和Grafana等监控工具来监控Docker容器。
8. 总结
通过本文,您应该可以了解到如何在RHEL8或者CentOS8系统上安装Docker或者相关组件了吗?其实组件不多,关键是后面的配置与使用。
评论前必须登录!
注册