本系列共4篇文章,我们将讨论Docker,它是一个开源的轻量级虚拟化工具,运行在操作系统级别之上,允许用户创建、运行和部署应用程序,并将其封装在小型容器中。
这种类型的Linux容器被证明是快速、可移植和安全的。在Docker容器中运行的进程始终与主机隔离,防止外界的篡改。
本教程提供了一个关于如何在CentOS/RHEL 8/7上安装Docker、创建和运行Docker容器的起点,但也仅仅接触到了Docker的表面。
一、安装和配置Docker
- 早期的Docker版本被称为docker或docker-engine,如果你安装了这些,你必须在安装较新的docker-ce版本之前卸载它们。
# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装最新版本的Docker引擎需要设置Docker Engine,并安装yum-utils包,在系统上启用Docker稳定存储库。
# yum install -y yum-utils
# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 现在,从Docker存储库安装较新的docker-ce版本,并手动对其进行容器化,因为由于某些问题,Red Hat阻止了docker-cecontainerd.io > 1.2.0-3.el7的依赖项的安装。
# 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
如果您可以看到以上提示,那就没问题。
6.现在,您可以运行一些基本的Docker命令来获取有关Docker的一些信息:
有关Docker的系统范围信息
# docker info
对于Docker版本
# docker version
7.要获取所有可用Docker命令的列表,请在控制台上键入docker。
# docker
二、下载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
三、运行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.如果容器处于运行状态,则可以通过发出命令来获取其IDdocker ps。docker stop通过指定容器ID或自动生成的名称来停止正在运行的容器问题命令。
# docker stop 923a720da57f
或者
# docker stop cool_lalande
# docker ps
16.通过在命令行中使用–name选项,为你创建的每个容器分配一个独特的名称,如下例所示,这样你就不必记住容器的ID:
# docker run --name ubuntu20.04 ubuntu cat /etc/issue
17.然后,使用为容器分配的名称,你可以进一步操作容器(开始、停止、删除、顶部、统计),如以下示例所示:
# docker start ubuntu20.04
# docker stats ubuntu20.04
# docker top ubuntu20.04
请注意,如果用于创建容器的命令过程完成,则上述某些命令可能不会显示任何输出。当容器内部运行的过程完成时,容器将停止。
四、在容器中运行交互式会话
18.为了以交互方式连接到容器shell会话,并像在其他任何Linux会话上一样运行命令,请发出以下命令:
#docker run -it ubuntu bash
上面的命令划分如下:
-i 用于启动交互式会话。
-t 分配TTY并附加stdin和stdout。
ubuntu 是我们用来创建容器的镜像。
bash(或/bin/bash)是我们在Ubuntu容器中运行的命令。
19.要退出正在运行的容器会话并返回到主机,必须输入exit命令。的出口命令终止所有的容器进程并停止。
# exit
- 如果交互式登录容器终端提示,需要保持容器处于运行状态但退出交互式会话,可以按Ctrl+p和Ctrl+q键退出控制台,返回主机终端。
21.要重新连接到运行中的容器,您需要容器ID或名称。发出docker ps命令以获取ID或名称,然后docker attach通过指定容器ID或名称来运行命令,如上图所示:
#docker attach <container id>
22.要从主机会话停止正在运行的容器,请发出以下命令:
#docker kill <container id>
以上就是容器操作的基本内容。在下一个教程中,我们将讨论如何在Docker容器中保存、删除和运行web服务器。
A5互联https://www.a5idc.net/