在CentOS和RHEL 8/7上安装Docker并学习基本的容器操作


简介

Docker 通过提供轻量级且高效的容器化平台,彻底改变了软件开发和部署的世界。借助 Docker,开发人员可以将他们的应用程序及其依赖项打包到容器中,从而更轻松地在不同的环境中一致地部署和运行它们。在本文中,我们将指导您完成在 CentOS 和 RHEL 8/7 上安装 Docker 的过程,并提供基本的容器操作示例。

在 CentOS/RHEL 8 上安装 Docker

准备系统

在安装 Docker 之前,请运行以下命令确保您的系统已更新:

$ sudo yum update
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加 Docker 仓库

要安装 Docker 包,您需要将 Docker 仓库添加到您的系统。执行以下命令:

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker Engine

现在,使用以下命令安装 Docker Engine:

$ sudo yum install -y docker-ce docker-ce-cli containerd.io

启动 Docker 服务

启动 Docker 服务并在系统启动时启用它:

$ sudo systemctl start docker
$ sudo systemctl enable docker

验证 Docker 安装

通过检查版本来确认 Docker 已安装并正在运行:

$ docker --version

基本的容器操作

运行您的第一个容器

让我们从运行一个简单的容器开始。执行以下命令来运行 Nginx Web 服务器容器:

$ docker run -d -p 80:80 nginx

列出正在运行的容器

要查看正在运行的容器列表,请使用以下命令:

$ docker ps

停止容器

使用其容器 ID 或名称停止正在运行的容器:

$ docker stop <container_id or container_name>

删除容器

要删除已停止的容器,请使用以下命令:

$ docker rm <container_id or container_name>

拉取 Docker 镜像

您可以使用 `docker pull` 命令从 Docker Hub 拉取镜像。例如,要拉取 Ubuntu 20.04 镜像,请使用:

$ docker pull ubuntu:20.04

运行交互式容器

要运行交互式容器并在其中获得 shell 提示符,请使用以下命令:

$ docker run -it ubuntu:20.04 /bin/bash

复制文件到/从容器

您可以使用 `docker cp` 命令在主机系统和容器之间复制文件。例如,要将名为 file.txt 的文件复制到容器,请执行:

$ docker cp file.txt <container_id>:<destination_path>

管理容器资源

Docker 提供了限制容器资源(如 CPU 和内存使用情况)的选项。例如,要将容器限制为仅使用 1 个 CPU 内核,请使用:

$ docker run --cpus=1 <image_name>

在 CentOS/RHEL 7 上安装 Docker

启用 Docker CE 仓库

首先,通过运行以下命令启用 Docker CE 仓库:

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker

使用以下命令安装 Docker:

$ sudo yum install -y docker-ce docker-ce-cli containerd.io

启动 Docker 服务

启动 Docker 服务并在系统启动时启用它:

$ sudo systemctl start docker
$ sudo systemctl enable docker

验证 Docker 安装

确认 Docker 已安装并正在运行:

$ docker --version

Docker 示例和输出

构建自定义 Docker 镜像

Docker 允许您通过指定 Dockerfile 来创建自己的自定义镜像。让我们创建一个简单的 Dockerfile,它构建一个包含自定义 HTML 文件的镜像:

创建一个名为 Dockerfile 的文件,内容如下:

FROM nginx:latest
COPY index.html /usr/share/nginx/html/

在同一目录中创建一个包含您所需内容的 index.html 文件。

使用以下命令构建 Docker 镜像:

$ docker build -t custom-nginx .

从自定义镜像运行容器

现在我们已经构建了自定义 Docker 镜像,让我们基于它运行一个容器:

$ docker run -d -p 8080:80 custom-nginx

通过打开浏览器并导航到 https://127.0.0.1:8080 来访问容器化的 Web 服务器。您应该会看到自定义 HTML 文件的内容。

检查容器详细信息

要查看有关正在运行的容器的详细信息(例如其 IP 地址、网络配置等),请使用以下命令:

$ docker inspect <container_id or container_name>

容器日志

要检查容器生成的日志,请使用以下命令:

$ docker logs <container_id or container_name>

管理 Docker 镜像

Docker 允许您高效地管理您的镜像。以下是一些有用的命令:

列出系统上所有可用的镜像:

$ docker images

删除镜像:

$ docker rmi <image_id or image_name>

拉取和推送镜像到 Docker Hub:

$ docker pull <image_name>
$ docker push <image_name>

Docker 网络

理解 Docker 网络

Docker 提供各种网络选项来促进容器和主机系统之间的通信。让我们探索一些常见的网络概念:

  • 桥接网络 - Docker 默认情况下会创建一个桥接网络,允许容器使用内部 IP 地址相互通信以及与主机通信。

  • 主机网络 - 容器与主机共享网络命名空间,使它们能够直接使用主机的网络接口。

  • 覆盖网络 - 用于在运行在不同 Docker 主机上的容器之间进行通信,形成一个分布式网络。

创建桥接网络

要创建一个自定义桥接网络,请使用以下命令:

$ docker network create mynetwork

在自定义网络上运行容器

您可以在运行容器时指定网络,以将其连接到特定网络:

$ docker run -d --network=mynetwork --name container1 nginx
$ docker run -d --network=mynetwork --name container2 nginx

上述命令创建两个容器(container1 和 container2)并将它们连接到 mynetwork 桥接网络。

检查网络详细信息

要查看有关 Docker 网络的信息(例如已连接的容器和 IP 地址),请使用以下命令:

$ docker network inspect mynetwork

将容器连接到多个网络

容器可以连接到多个网络,允许在不同的网络之间进行通信。使用以下命令将容器连接到其他网络:

$ docker network connect mynetwork2 <container_id or container_name>

公开容器端口

要将容器的端口公开到主机系统,请在运行容器时使用 `-p` 或 `--publish` 标志:

$ docker run -d -p 8080:80 nginx

上述命令将容器的 80 端口公开到主机的 8080 端口。

链接容器

`--link` 选项允许容器使用专用 DNS 名称安全地相互通信。例如,要将 container1 链接到 container2,请使用以下命令:

$ docker run -d --link container2 --name container1 nginx

在这种情况下,container1 可以使用 DNS 名称 container2 与 container2 通信。

结论

在本文中,我们介绍了在 CentOS 和 RHEL 8/7 上安装 Docker 的方法。我们逐步介绍了设置 Docker 的过程,包括仓库配置、包安装和服务管理。此外,我们还探讨了基本的容器操作命令,例如运行、停止和删除容器、拉取镜像、与容器交互以及管理容器资源。有了这些知识,您现在可以开始探索广阔的容器化世界,并利用 Docker 简化您的软件部署流程。

更新于:2023年7月17日

浏览量:194

启动您的职业生涯

通过完成课程获得认证

开始学习
广告