如何在 CentOS 7 上安装和使用 Docker

2023-10-21

Docker 是一种容器化技术,可让您快速构建、测试和部署应用程序,作为可移植、自给自足的容器,几乎可以在任何地方运行。

在本教程中,我们将介绍如何在 CentOS 7 上安装 Docker CE 并探索基本的 Docker 概念和命令。

先决条件#

在继续本教程之前,请确保满足以下先决条件:

  • CentOS 7服务器
  • 您以具有 sudo 权限的非 root 用户身份登录。你检查本指南关于如何创建新的 sudo 用户。

在 CentOS 上安装 Docker#

尽管 Docker 包在 CentOS 7 官方存储库中可用,但它可能并不总是最新版本。推荐的方法是从 Docker 的存储库安装 Docker。

要在 CentOS 7 服务器上安装 Docker,请按照以下步骤操作:

  1. 首先更新系统软件包并安装所需的依赖项:

    sudo yum updatesudo yum install yum-utils device-mapper-persistent-data lvm2
  2. 接下来,运行以下命令将 Docker 稳定存储库添加到您的系统:

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. 现在 Docker 存储库已启用,请使用 yum 安装最新版本的 Docker CE(社区版),方法是键入:

    sudo yum install docker-ce
  4. 安装 Docker 软件包后,启动 Docker 守护进程并使其在启动时自动启动:

    sudo systemctl start dockersudo systemctl enable docker
  5. 要验证 Docker 服务是否正在运行,请输入:

    sudo 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 Wed 2018-10-31 08:51:20 UTC; 7s ago
         Docs: https://docs.docker.com
     Main PID: 2492 (dockerd)
       CGroup: /system.slice/docker.service
               ├─2492 /usr/bin/dockerd
               └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml
  6. 在撰写本文时,Docker 当前的稳定版本是,18.06.1,打印 Docker 版本类型:

    docker -v
    Docker version 18.06.1-ce, build e68fc7a

不使用 sudo 执行 Docker 命令#

默认情况下,管理 Docker 需要管理员权限。如果您想以非 root 用户身份运行 Docker 命令而不添加前缀sudo你需要将您的用户添加到 docker 组它是在安装 Docker CE 包期间创建的。您可以通过输入以下内容来做到这一点:

sudo usermod -aG docker $USER

$USER is an 环境变量保存您的用户名。

注销并重新登录,以便刷新组成员身份。

要验证 Docker 是否已成功安装并且您可以在没有 sudo 的情况下运行 docker 命令,请发出以下命令来下载测试映像,run将其放入容器中,打印“Hello from Docker”消息并退出:

docker container run hello-world

输出应如下所示:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

Docker 命令行界面#

现在我们已经安装了可用的 Docker,让我们回顾一下 docker CLI 的基本语法。

docker 命令行采用以下形式:

docker [option] [subcommand] [arguments]

您可以通过键入列出所有可用命令docker不带参数:

docker

如果您在任何方面需要更多帮助[subcommand],只需输入:

docker [subcommand] --help

Docker 镜像#

Docker 镜像由一系列层组成,代表镜像中的指令Dockerfile组成可执行软件应用程序。映像是一个不可变的二进制文件,包括应用程序和所有其他依赖项,例如运行应用程序所需的二进制文件、库和指令。简而言之,Docker 镜像本质上是 Docker 容器的快照。

Docker Hub 是基于云的注册表服务,除其他功能外,还用于将 Docker 映像保存在公共或私有存储库中。

要在 Docker Hub 存储库中搜索图像,只需使用search子命令。例如,要搜索 CentOS 映像,请运行:

docker search centos

输出应如下所示:

NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   4257                [OK]
ansible/centos7-ansible            Ansible on Centos7                              109                                     [OK]
jdeathe/centos-ssh                 CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_…   94                                      [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   52                                      [OK]
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              40                                      [OK]
tutum/centos                       Simple CentOS docker image with SSH access      39

正如您所看到的,搜索结果打印了一个包含五列的表格,NAME, DESCRIPTION, STARS, OFFICIAL and AUTOMATED。官方镜像是Docker与上游合作伙伴共同开发的镜像。

如果我们想下载 CentOS 7 的官方版本,我们可以使用image pull子命令:

docker image pull centos
Using default tag: latest
latest: Pulling from library/centos
469cfcc7a4b3: Pull complete
Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Status: Downloaded newer image for centos:latest

根据您的互联网速度,下载可能需要几秒钟或几分钟。下载图像后,我们可以列出图像:

docker image ls

输出应如下所示:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              e38bc07ac18e        3 weeks ago         1.85kB
centos              latest              e934aafc2206        4 weeks ago         199MB

如果由于某种原因你想删除图像,你可以使用image rm [image_name]子命令:

docker image rm centos
Untagged: centos:latest
Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f
Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0

Docker容器#

图像的实例称为容器。容器代表单个应用程序、进程或服务的运行时。

这可能不是最合适的比较,但如果您是一名程序员,您可以将 Docker 映像视为类,将 Docker 容器视为类的实例。

我们可以使用以下命令启动、停止、删除和管理容器docker container子命令。

以下命令将启动基于 CentoOS 映像的 Docker 容器。如果本地没有该镜像,它会先下载:

docker container run centos

乍一看,你可能觉得什么都没发生。嗯,事实并非如此。 CentOS容器在启动后立即停止,因为它没有长时间运行的进程,并且我们没有提供任何命令,因此容器启动,运行一个空命令,然后退出。

开关-it允许我们通过命令行与容器交互。要启动交互式容器类型:

docker container run -it centos /bin/bash

正如您从输出中看到的,一旦容器启动,命令提示符就会更改,这意味着您现在正在工作从容器内部 :

[root@719ef9304412 /]#

To 列出正在运行的容器: , 类型:

docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
79ab8e16d567        centos              "/bin/bash"         22 minutes ago      Up 22 minutes                           ecstatic_ardinghelli
如果没有任何正在运行的容器,则输出将为空。

要查看正在运行和已停止的容器,请将其传递给-a switch:

docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
79ab8e16d567        centos              "/bin/bash"              22 minutes ago      Up 22 minutes                                   ecstatic_ardinghelli
c55680af670c        centos              "/bin/bash"              30 minutes ago      Exited (0) 30 minutes ago                       modest_hawking
c6a147d1bc8a        hello-world         "/hello"                 20 hours ago        Exited (0) 20 hours ago                         sleepy_shannon

要删除一个或多个容器,只需从上面复制容器 ID(或多个 ID)并将其粘贴到container rm子命令:

docker container rm c55680af670c

结论#

您已经学习了如何在 CentOS 7 计算机上安装 Docker 以及如何下载 Docker 映像和管理 Docker 容器。您可能还想阅读Docker 组合,它允许您定义和运行多容器 Docker 应用程序。

本教程仅涉及 Docker 生态系统的皮毛。在接下来的一些文章中,我们将继续深入探讨 Docker 的其他方面。要了解更多关于 Docker 的信息,请查看官方Docker 文档 .

如果您有任何疑问或意见,请在下面留言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 7 上安装和使用 Docker 的相关文章

随机推荐

  • 用于文本处理的 Sed 分组和反向引用

    分组和反向引用是正则表达式中的基本概念 sed为两者提供支持 分组允许您将多个字符视为一个单元 而反向引用允许您引用先前匹配的组 在本教程中 我们将介绍与分组和反向引用相关的各种主题sed 例如捕获组 组内交替等等 目录 hide 1 捕获
  • 使用 Linux jq 命令进行 JSON 操作

    jq 是一个轻量级的命令行 JSON 处理器 可帮助您在使用时过滤 解析和操作这些 JSON 响应RESTful API jq不仅仅是一个简单的解析器 它是一个强大的工具 可以转换 重塑和查询 JSON 数据 本教程将深入探讨jqJSON
  • 使用Python下载文件(简单示例)

    在本教程中 您将学习如何使用不同的 Python 模块从网络下载文件 您将下载常规文件 网页 Amazon S3 和其他源 此外 您还将学习如何克服您可能遇到的许多挑战 例如下载重定向文件 下载大文件 多线程下载和其他策略 目录 hide
  • 超过 15 个在 Linux 中列出用户的示例

    在这篇文章中 您将了解如何在 Linux 中列出用户 除此之外 你还会了解有关Linux用户特征的其他技巧 Linux中有两种类型的用户 系统用户是系统默认创建的 另一方面 还有一些由系统管理员创建的普通用户 可以登录系统并使用系统 目录
  • 使用 sed 进行文本替换:替换命令指南

    文本替换是其最常用的功能之一sed命令 当您需要替换大型文件或输入流中的文本模式实例而无需手动编辑每个实例时 此功能非常有用 文本替换的基本语法sed is sed s search pattern replacement text g f
  • Python 标准差教程

    标准差是一种量化数据集中多样性或分散程度的指标 标准差小意味着数据点倾向于接近平均值 而标准差大则表明数据点广泛分散 在本教程的以下部分中 我们将深入探讨如何使用 Python 计算和理解标准差的更多细节 目录 hide 1 标准差的类型
  • Python Deque 详解:高效的堆栈和队列操作

    Python 中的 Deque 也称为双端队列 是一种数据结构 允许您从任一端添加和删除元素 蟒蛇的collections模块为我们提供了deque类来创建双端队列 它们与队列和堆栈不同 因为它们支持更灵活 内存效率更高 并且在某些情况下支
  • 如何限制 Apache 中的带宽

    Apache 是世界上使用最广泛的 Web 服务器之一 以其灵活性和稳健性而闻名 有时 系统管理员可能会发现自己需要限制 Apache 使用的带宽 以防止某个网站或服务使用所有可用资源 本文将逐步详细介绍如何在 Apache 中限制带宽 先
  • Linux下如何修改文件夹及子文件夹的权限

    为任何 Web 应用程序设置正确的文件权限是 Web 托管的重要组成部分 在本教程中 您将学习如何在单个命令中递归地更改文件夹和子文件夹的文件权限 如您所知 在 Linux 中 一切都被视为文件 文件夹也称为目录文件 用 表示 d 在权限部
  • 如何在 CentOS 和 Fedora 中安装或更新 OpenSSH

    OpenSSH是一款广泛用于远程登录或远程文件传输的免费工具 它使用SSH SecSH协议套件为网络服务提供加密 其源代码可供所有人免费使用 本文将帮助您在 CentOS RHEL 和 Fedora 系统中安装或更新 OpenSSH 服务器
  • 如何在 Debian 8 上安装 Nginx (Jessie)

    Nginx 是 Apache HTTP Server 之外的另一个最受欢迎的 Web 服务器 全球范围内大量流行网站都在使用它 该网络服务器对于大流量网站非常有用 本教程将帮助您使用 apt get 在 Debian 8 Jessie 上安
  • 如何在 CentOS/RHEL 和 Fedora 上设置 AWStats(Apache 日志分析器)

    AWStats 是一款免费的开源日志分析器 可提供有关 Apache Web 服务器流量的详细见解 借助 AWStats 您可以跟踪网站访问 引用网站 搜索引擎 操作系统 浏览器等等 它是网站所有者 系统管理员和开发人员监控网站性能并做出明
  • 在基于 RHEL 的系统上配置 EPEL 存储库

    Extra Packages for Enterprise Linux EPEL 是一个在线存储库 为企业 Linux 系统提供高质量的常用软件包 这些软件包是在 Fedora 上开发和测试的 Fedora 可用于 RHEL EPEL 存储
  • 如何通过 PPA 在 Ubuntu 18.04 和 16.04 上安装 MongoDB 4.4

    MongoDB 是一个完全灵活的索引支持和丰富的查询数据库 Mongodb 是一个 NoSQL 数据库 MongoDB 通过 GridFS 提供大型媒体存储 点击here有关此版本 MongoDB 的更多详细信息 本教程将帮助您在 Ubun
  • 如何在 Ubuntu 18.04 和 16.04 LTS 上安装 Webmin

    Webmin是一个类似于 CPanel 的网络托管控制面板 它提供了易于使用的界面来管理类 Unix 系统 Webmin 非常易于使用 轻量级应用程序可以在一分钟内轻松安装到系统上 Webmin 删除了所有通过命令行完成的手动任务 本文将帮
  • 如何检查 OpenSSH 版本

    OpenSSH是一个安全的网络实用程序 用于使用 SSH 协议进行远程登录 这是大多数基于 Linux 的系统用于远程 SSH 登录的主要工具 OpenSSH 为您提供通过 SSH 协议连接远程系统的选项 它提供了两个系统之间通信的端到端加
  • 如何在 CentOS/RHEL 9/8/7 上安装 NRPE

    NRPE Nagios Remote Plugin Executor 是一个 Nagios 插件 用于在远程主机上远程执行插件和脚本 这允许您监视远程主机上的资源 例如磁盘使用情况 CPU 负载和网络活动 在本文中 我们将向您展示如何在 C
  • 如何在 Ubuntu 20.04 中安装 PostgreSQL 和 pgAdmin4

    PostgreSQL是一个强大 可靠 健壮且开源的对象关系数据库系统 该数据库系统的最新版本是 PostgreSQL 13 2 而版本 12 6 11 11 10 16 9 6 21 和 9 5 25 仍在定期更新 本教程介绍如何在 Ubu
  • 如何在 Ubuntu 和 Debian 中切换 Python 版本

    Python 是一种高级编程语言 广泛用于系统编程 它适用于所有流行的操作系统 您可以在单个系统上安装多个 Python 版本 安装多个 Python 版本后 您可以使用 update alternatives 工具切换默认 Python
  • 如何在 CentOS 7 上安装和使用 Docker

    Docker 是一种容器化技术 可让您快速构建 测试和部署应用程序 作为可移植 自给自足的容器 几乎可以在任何地方运行 在本教程中 我们将介绍如何在 CentOS 7 上安装 Docker CE 并探索基本的 Docker 概念和命令 先决