网站搜索

安装 Docker 并学习 CentOS 和 RHEL 8/7 中的基本容器操作 - 第 1 部分


在这个由 4 篇文章组成的系列中,我们将讨论 Docker,它是一个开源轻量级虚拟化工具,运行在操作系统级别之上,允许用户创建、运行和部署应用程序,并将其封装成小型的应用程序。容器。

这种类型的 Linux 容器被证明是快速、可移植且安全的。 Docker容器中运行的进程始终与主主机隔离,防止外部篡改。

本教程提供了如何在 CentOS/RHEL 8/7 上安装 Docker、创建和运行 Docker 容器的起点,但仅仅触及了 Docker 的表面。

第 1 步:安装并配置 Docker

1.Docker的早期版本称为dockerdocker-engine,如果您安装了这些,则必须在安装更新的 docker-ce 版本之前卸载它们。

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.要安装最新版本的Docker引擎,您需要设置Docker存储库并安装yum-utils软件包以启用Docker系统上的稳定存储库。

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. 现在从 Docker 存储库和 containerd 手动安装较新的 docker-ce 版本,因为由于某些问题,Red Hat 阻止了安装containerd.io > 1.2.0-3.el7,它是 docker-ce 的依赖项。

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

4. 安装 Docker 软件包后,启动守护进程,检查其状态并使用以下命令在系统范围内启用它:

systemctl start docker 
systemctl status docker
systemctl enable docker

5. 最后,通过发出以下命令运行容器测试映像以验证 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/

6. 现在,您可以运行一些基本的 Docker 命令来获取有关 Docker 的一些信息:

有关 Docker 的系统范围信息
docker info

对于 Docker 版本
docker version

7. 要获取所有可用 Docker 命令的列表,请在控制台上输入 docker 。

docker

第 2 步:下载 Docker 镜像

8. 为了启动并运行 Docker 容器,首先必须从主机上的 Docker Hub 下载镜像。 Docker Hub 从其存储库中提供了大量免费图像。

要搜索 Docker 映像(例如 Ubuntu),请发出以下命令:

docker search ubuntu

9. 根据需要决定要运行的映像后,通过运行以下命令将其下载到本地(在本例中,将下载并使用 Ubuntu 映像) ):

docker pull ubuntu

10. 要列出主机上所有可用的 Docker 映像,请发出以下命令:

docker images

11.如果您不再需要 Docker 映像并且想要将其从主机中删除,请发出以下命令:

docker rmi ubuntu

第 3 步:运行 Docker 容器

当您对图像执行命令时,您基本上会获得一个容器。在容器中执行的命令结束后,容器将停止(您将获得一个未运行或已退出的容器)。如果您再次在同一个映像中运行另一个命令,则会创建一个新容器,依此类推。

创建的所有容器都将保留在主机文件系统上,直到您选择使用 docker rm 命令删除它们。

12. 为了创建并运行容器,您需要在下载的映像中运行命令,在本例中为 Ubuntu,因此基本命令是显示使用 cat 命令在容器内创建分发版本文件,如下例所示:

docker run ubuntu cat /etc/issue

上述命令划分如下:

docker run [local image] [command to run into container]

13. 要使用创建容器时执行的命令再次运行其中一个容器,首先,您必须获取容器ID(或 Docker 自动生成的名称)通过发出以下命令,该命令显示正在运行和已停止(非运行)容器的列表:

docker ps -l 

14. 获得容器 ID 后,您可以使用用于创建容器的命令再次启动该容器,方法是发出以下命令:

docker start 923a720da57f

这里,字符串923a720da57f代表容器ID

15.如果容器处于运行状态,您可以通过发出docker ps命令获取其ID。要停止正在运行的容器,请通过指定容器ID或自动生成的名称发出docker stop命令。

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. 一个更优雅的替代方案是使用 - 为您创建的每个容器分配一个唯一的名称,这样您就不必记住容器 ID命令行上的 -name 选项,如下例所示:

docker run --name ubuntu20.04 ubuntu cat /etc/issue

17.然后,使用您为容器分配的名称,您可以操作容器(启动停止删除topstats),只需寻址其名称即可,如下例所示:

docker start ubuntu20.04
docker stats ubuntu20.04
docker top ubuntu20.04 

请注意,如果用于创建容器的命令过程完成,上述某些命令可能不会显示任何输出。当容器内运行的进程完成时,容器将停止。

步骤 4:在容器中运行交互式会话

18. 为了以交互方式连接到容器 shell 会话,并像在任何其他 Linux 会话上一样运行命令,请发出以下命令:

docker run -it ubuntu bash

上述命令划分如下:

  1. -i 用于启动交互式会话。
  2. -t 分配一个 TTY 并附加 stdin 和 stdout。
  3. ubuntu 是我们用来创建容器的镜像。
  4. bash(或/bin/bash)是我们在 Ubuntu 容器内运行的命令。

19. 要从正在运行的容器会话退出并返回主机,您必须键入 exit 命令。 exit 命令终止所有容器进程并将其停止。

exit

20.如果您以交互方式登录容器终端提示符,并且需要使容器保持运行状态但退出交互式会话,您可以退出< 控制台并按 Ctrl+pCtrl+q 键返回主机终端。

21. 要重新连接到正在运行的容器,您需要容器ID名称。发出docker ps命令获取ID名称,然后通过指定容器运行docker Attach命令ID名称,如上图所示:

docker attach <container id>

22. 要从主机会话停止正在运行的容器,请发出以下命令:

docker kill <container id>

这就是基本的容器操作。在下一个教程中,我们将讨论如何在 Docker 容器中保存、删除和运行 Web 服务器。