Docker快速入门

7 架构

下图显示了虚拟化的标准和传统架构


  • 服务器是用于托管多个虚拟机的物理服务器。

  • 主机操作系统是Linux或Windows等基本机器。

  • 管理程序是用于托管虚拟机的VMWare或Windows Hyper V。

  • 然后,您可以将多个操作系统作为虚拟机安装在作为来宾OS的现有虚拟机管理程序之上。

  • 然后,您将在每个客户操作系统上托管您的应用程序。

下图显示了通过Dockers启用的新一代虚拟化。我们来看看各个层次。

扫描二维码关注公众号,回复: 52845 查看本文章

  • 服务器是用于托管多个虚拟机的物理服务器。所以这一层保持不变。

  • 主机操作系统是Linux或Windows等基本机器。所以这一层保持不变。

  • 现在是新一代Docker引擎。这用于运行早期用作虚拟机作为Docker容器的操作系统。

  • 所有的应用程序现在都作为Docker容器运行。

这种体系结构的明显优势在于,您不需要为Guest OS提供额外的硬件。一切都作为Docker容器。

8 容器和主机

Docker引擎的好处在于它可以在各种操作系统上运行。我们已经在Windows上看到了安装,并看到了Linux系统上的所有Docker命令。现在我们来看看Windows操作系统上的各种Docker命令。

Docker images

我们在Windows主机上运行Docker images命令。

Docker图像

从这里,我们可以看到我们有两个图像 - ubuntuhello-world

运行一个容器

现在让我们在Windows Docker主机中运行一个容器。

运行容器

我们可以看到,通过运行容器,我们现在可以在Windows主机上运行Ubuntu容器。

列出所有容器

让我们列出Windows主机上的所有容器。

列出容器

停止容器

现在让我们停止Windows主机上正在运行的容器。

停止容器

所以你可以看到Docker引擎对于不同的Docker主机是非常一致的,它在Windows上的工作原理与它在Linux上的工作方式相同。

9 配置

在本章中,我们将看看配置Docker的不同选项。

service docker stop

该命令用于停止Docker daemon进程。

语法

service docker stop 

选项

没有

返回值

显示Docker进程已停止的消息。

sudo service docker stop 

输出

当我们运行上面的命令时,它会产生以下结果 -

服务Docker停止

service docker start

该命令用于启动Docker守护进程。

语法

service docker start 

选项

没有

返回值

显示Docker进程已启动的消息。

sudo service docker start

输出

当我们运行上面的命令时,它会产生以下结果 -

服务Docker开始

10 容器和shell

默认情况下,当你启动一个容器时,你将在启动容器时使用一个shell命令,如下所示。这是我们在之前的章节中看到的有关容器工作的内容。

Shell命令

在上面的截图中,您可以观察到我们已经发出了以下命令 -

sudo docker run –it centos /bin/bash 

我们使用这个命令来创建一个新的容器,然后使用Ctrl + P + Q命令退出容器。它确保即使在我们离开容器后容器仍然存在。

我们可以通过Docker ps命令验证容器是否仍然存在如果我们不得不直接退出容器,那么容器本身就会被销毁。

现在有一种更容易的方法来附加到容器并干净地离开它们,而不需要销毁它们。达到此目的的一种方法是使用nsenter命令。

在我们运行nsenter命令之前,您需要先安装nsenter映像。它可以通过使用以下命令完成 -

docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

Nsenter图像

在使用nsenter命令之前,我们需要获取容器的进程ID,因为这是nsenter命令所要求的我们可以通过Docker 检查命令获取进程ID 并通过Pid进行过滤

检查命令

如上图所示,我们首先使用docker ps命令查看正在运行的容器。我们可以看到有一个运行的容器,其ID为ef42a4c5e663。

然后,我们使用Docker inspect命令检查此容器的配置,然后使用grep命令过滤进程ID。从输出中,我们可以看到进程ID是2978。

现在我们有了进程ID,我们可以继续前进并使用nsenter命令将其连接到Docker容器。

nsenter

该方法允许在不退出容器的情况下附着到容器。

语法

nsenter -m -u -n -p -i -t containerID command

选项

  • -u用于提及Uts命名空间

  • -m用于提到mount名称空间

  • -n用于提及network名称空间

  • -p用于提及process名称空间

  • -i s到使交互模式的容器运行在。

  • -t用于将容器的I / O流连接到主机操作系统。

  • containerID - 这是容器的ID。

  • Command - 这是在容器中运行的命令。

返回值

没有

sudo nsenter m u n p i t 2978 /bin/bash

输出

Nsenter

从输出中,我们可以观察到以下几点 -

  • 当我们发出nsenter命令,提示会直接更改为bash shell

  • 然后我们发出退出命令。现在通常如果你没有使用nsenter命令,容器将被销毁。但是你会注意到,当我们运行nsenter命令时,容器仍然运行。

11 文件

在前面的章节中,我们已经看到各种Image文件,例如从Docker hub下载的Centos ,您可以从中启动容器。下面再一个例子。

Docker文件

如果我们使用Docker images命令,我们可以在系统中看到现有的图像。从上面的截图中,我们可以看到有两个图像:centosnsenter

但是,Docker也为您提供了创建自己的Docker镜像的功能,并且可以在Docker文件的帮助下完成Docker文件是一个简单的文本文件,其中包含有关如何构建图像的说明。

以下步骤解释了您应该如何创建Docker文件。

第1步 - 创建一个名为Docker File的文件并使用vim进行编辑请注意,文件的名称必须是“Dockerfile”,其中“D”为大写。

编辑Vim

第2步 - 使用以下说明构建Docker文件。

#This is a sample Image 
FROM ubuntu 
MAINTAINER [email protected] 

RUN apt-get update 
RUN apt-get install –y nginx 
CMD [“echo”,”Image created”] 

关于上述文件需要注意以下几点 -

  • 第一行“#This是一个示例图像”是一条评论。您可以在命令的帮助下向Docker文件添加注释

  • 下一行必须以FROM关键字开头它告诉码头,你想从哪个基础图像中获取图像。在我们的例子中,我们从ubuntu镜像创建一个镜像。

  • 下一个命令是要维护这个图像的人。您在此指定MAINTAINER关键字并只提及电子邮件ID。

  • RUN命令用于运行针对所述图像的指令。在我们的例子中,我们首先更新我们的Ubuntu系统,然后在我们的Ubuntu映像上安装nginx服务器

  • 最后一条命令用于向用户显示消息。

第3步 - 保存文件。在下一章中,我们将讨论如何构建图像。

建立图像

12 构建文件

我们在上一章中创建了Docker文件。现在是构建Docker文件的时候了。Docker文件可以使用以下命令构建 -

docker build 

让我们更多地了解这个命令。

docker build

这种方法允许用户构建他们自己的Docker镜像。

语法

docker build  -t ImageName:TagName dir

选项

  • -t - 是为image提一个标签

  • ImageName - 这是你想要给你的图像的名称。

  • TagName - 这是您想要给图片的标签。

  • Dir - Docker文件所在的目录。

返回值

没有

sudo docker build t myimage:0.1 

这里,myimage是我们给图片的名称,0.1我们给图片的标签号码。

由于Docker文件位于当前工作目录中,因此我们使用“。” 在表示当前工作目录的命令结尾处。

输出

从输出中,您将首先看到Ubuntu Image将从Docker Hub下载,因为机器上没有本地可用的映像。

没有图像

最后,构建完成后,所有必要的命令都会在映像上运行。

命令在图像上运行

您将看到成功构建的消息和新图像的ID。当您运行Docker images命令时,您将能够看到新图像。

内置消息和ID

您现在可以从新图像构建容器。

13 公共仓库

公共存储库可用于托管其他人可以使用的Docker映像。一个例子是Docker Hub中可用的图像。像Centos,Ubuntu和Jenkins等大多数图像都是公开可用的。我们还可以通过将它发布到Docker Hub上的公共存储库来使我们的图像可用。

对于我们的示例,我们将使用“构建Docker文件”一章中构建myimage存储库并将该图像上传到Docker Hub。我们先来看看我们的Docker主机上的图像,看看我们可以推送到Docker注册表。

MYIMAGE

在这里,我们有我们的myimage:0.1图像,它被创建为“Building Docker Files”一章的一部分。我们用它来上传到Docker公共存储库。

以下步骤说明如何将图像上传到公共存储库。

第1步 - 登录到Docker Hub并创建您的存储库。这是存储图像的存储库。转到https://hub.docker.com/并使用您的凭据登录。

Docker Hub

第2步 - 在上面的屏幕上点击“Create Repository”按钮,并创建一个名为demorep的仓库确保存储库的可见性是公开的。

Demorep

一旦创建了存储库,记下连接到存储库pull命令。

知识库

将在我们的仓库中使用pull命令如下所示 -

docker pull demousr/demorep

第3步 - 现在回到Docker主机。在这里,我们需要将我们的myimage标记为在Docker Hub中创建的新存储库。我们可以通过Docker 标签命令来做到这一点

我们将在本章后面详细了解这个标签命令

第4步 - 发出Docker登录命令从命令提示符登录到Docker Hub存储库。Docker登录命令将提示您输入Docker Hub存储库的用户名和密码。

Docker登录命令

第5步 - 图像标记完成后,现在是时候将图像推送到Docker Hub存储库。我们可以通过Docker push命令执行此操作本章后面我们将更多地了解这个命令。

docker tag

该方法允许将图像标记到相关存储库。

语法

docker tag imageID Repositoryname 

选项

  • imageID - 这是需要标记到存储库的ImageID。

  • Repositoryname - 这是ImageID需要标记到的存储库名称。

返回值

没有

sudo docker tag ab0c1d3744dd demousr/demorep:1.0

输出

上面的例子的输出示例如下。

码头标签

docker push

该方法允许将图像推送到Docker Hub。

语法

docker push Repositoryname 

选项

  • Repositoryname - 这是需要推送到Docker Hub的存储库名称。

返回值

存储库的长ID被推送到Docker Hub。

sudo docker push demousr/demorep:1.0 

输出

Docker推送

如果您返回Docker Hub页面并转至您的存储库,则会在存储库中看到标记名称。

存储库中的标签名称

现在让我们尝试将我们上传到我们的Docker主机上的存储库。首先,从本地Docker主机中删除图像myimage:0.1demousr / demorep:1.0我们使用Docker pull命令从Docker Hub中提取存储库。

Docker拉命令

从上面的屏幕截图中,您可以看到Docker pull命令从Docker Hub获取了我们的新存储库并将其放置在我们的计算机上。

14 管理端口

在Docker中,容器本身可以使应用程序在端口上运行。在运行容器时,如果要通过端口号访问容器中的应用程序,则需要将容器的端口号映射到Docker主机的端口号。我们来看看如何实现这个目标的例子。

在我们的例子中,我们将从Docker Hub下载Jenkins容器。然后,我们将把Jenkins端口号映射到Docker主机上的端口号。

第1步 - 首先,您需要在Docker Hub上进行简单的注册。

简单唱歌

第2步 - 注册后,您将登录到Docker Hub。

登录的Docker Hub

第3步 - 接下来,让我们浏览并找到Jenkins图像。

运行命令

第4步 - 如果您在同一页面上向下滚动,您可以看到Docker pull命令。这将用于将Jenkins图像下载到本地Ubuntu服务器上。

本地Ubuntu服务器

第5步 - 现在去Ubuntu服务器并运行命令 -

sudo docker pull jenkins 

检查图像

第6步 - 要了解容器暴露的端口,应该使用Docker inspect命令检查映像。

现在让我们更多地了解这个检查命令。

docker inspect

此方法允许您返回容器或图像的低级信息。

语法

docker inspect Container/Image 

选项

  • Container/Image - 要检查的容器或图像

返回值

JSON格式的图像或容器的低级信息。

sudo docker inspect jenkins 

输出

Docker检查输出

在输出检查命令给出一个JSON输出。如果我们观察输出结果,我们可以看到有一段“ExposedPorts”,并且看到有两个端口被提及。一个是8080 数据端口,另一个是50000 控制端口

要运行Jenkins并映射端口,您需要更改Docker 运行命令并添加指定端口映射的“p”选项。所以,你需要运行下面的命令 -

sudo docker run -p 8080:8080 -p 50000:50000 jenkins 

端口号映射的左侧是要映射到的Docker主机端口,右侧是Docker容器端口号。

当您打开浏览器并导航到端口8080上的Docker主机时,您将看到Jenkins启动并运行。

解开詹金斯

15 Private Registries

您可能需要拥有自己的私有存储库。您可能不希望托管Docker Hub上的存储库。为此,Docker有一个存储库容器本身。我们来看看我们如何下载和使用注册表的容器。

第1步 - 使用Docker 运行命令下载私有注册表。这可以使用以下命令完成。

sudo docker run –d –p 5000:5000 –-name registry registry:2

关于上述命令需要注意以下几点 -

  • 注册表是由Docker管理的容器,可用于托管私有存储库。

  • 容器公开的端口号为5000.因此,使用-p命令,我们将同一端口号映射到本地主机上的5000端口号。

  • 我们只是将注册表容器标记为“2”,以区分它在Docker主机上。

  • -d选项用于运行分离模式的容器。这是为了容器可以在后台运行

分离模式

第2步 - 让我们做一个docker ps,看看注册表容器确实在运行。

Docker PS

我们现在已经确认注册表容器确实在运行。

第3步 - 现在让我们标记一个现有的图像,以便我们可以将其推送到我们的本地存储库。在我们的示例中,由于我们有本地可用centos映像,因此我们将其标记到我们的私有存储库并添加一个标记名称为centos

sudo docker tag 67591570dd29 localhost:5000/centos 

关于上述命令需要注意以下几点 -

  • 67591570dd29引用了centos映像的映像ID 

  • localhost:5000是我们私有存储库的位置。

  • 我们将存储库名称标记为我们私有存储库中的centos

私人存储库

第4步 - 现在让我们使用Docker push命令将存储库推送到我们的私有存储库。

sudo docker push localhost:5000/centos 

在这里,我们将centos映像送到localhost:5000托管的私有存储库

本地主机

第5步 - 现在让我们使用docker rmi命令删除我们拥有的用于centos的本地映像然后我们可以从我们的私人存储库下载所需的centos映像。

sudo docker rmi centos:latest 
sudo docker rmi 67591570dd29

Docker RMI命令

第6步 - 现在我们的本地计算机上没有任何centos映像,现在我们可以使用以下Docker pull命令从我们的私有存储库中提取centos映像。

sudo docker pull localhost:5000/centos

在这里,我们将centos映像拉到localhost:5000托管的私有存储库中

拉Centos图像

如果你现在看到系统中的图像,你也会看到centos图像。

16 构建Web服务器Docker文件

我们已经学会了如何使用Docker File来构建我们自己的自定义图像。现在让我们看看我们如何构建一个可用于构建容器的Web服务器映像。

在我们的例子中,我们将使用Ubuntu上的Apache Web服务器来构建我们的图像。让我们按照下面给出的步骤构建我们的Web服务器Docker文件。

第1步 - 第一步是构建我们的Docker文件。让我们使用vim使用以下信息创建一个Docker文件。

FROM ubuntu 
RUN apt-get update 
RUN apt-get install –y apache2 
RUN apt-get install –y apache2-utils 
RUN apt-get clean 
EXPOSE 80 CMD [“apache2ctl”, “-D”, “FOREGROUND”]

以上几点需要注意以下几点 -

  • 我们首先创建我们的图像来自Ubuntu的基本映像。

  • 接下来,我们将使用RUN命令更新Ubuntu系统上的所有软件包。

  • 接下来,我们使用RUN命令在我们的映像上安装apache2。

  • 接下来,我们使用RUN命令在我们的映像上安装必要的实用程序apache2软件包。

  • 接下来,我们使用RUN命令来清除系统中不必要的文件。

  • EXPOSE命令用于将容器中Apache的80端口暴露给Docker主机。

  • 最后,CMD命令用于在后台运行apache2。

的Apache2

现在已输入文件详细信息,只需保存该文件即可。

第2步 - 运行Docker build命令来构建Docker文件。它可以使用以下命令完成 -

sudo docker build –t=”mywebserver” . 

我们将我们的图片标记为mywebserver一旦图像被构建,您就会得到一个成功的消息,即该文件已经被构建。

Mywebservers

第3步 - 现在Web服务器文件已经建好,现在是从图像创建容器的时候了。我们可以用Docker 运行命令来做到这一点

sudo docker run –d –p 80:80 mywebserver 

Docker运行命令

关于上述命令需要注意以下几点 -

  • 容器公开的端口号为80.因此,使用-p命令,我们将同一端口号映射到本地主机上的80端口号。

  • -d选项用于运行分离模式的容器。这是为了容器可以在后台运行。

如果您在Web浏览器中访问Docker主机的端口80,您现在将看到Apache已启动并正在运行。

Apache正在运行

17 指令命令

Docker有许多指令命令。这些是放在Docker文件中的命令。我们来看看那些可用的。

CMD指令

该命令用于在执行容器时在运行时执行命令。

语法

CMD command param1 

选项

  • command - 这是在启动容器时运行的命令。

  • param1 - 这是输入到命令的参数。

返回值

该命令将相应执行。

在我们的例子中,我们将在我们的Docker文件中输入一个简单的 Hello World回显,并创建一个图像并从中启动一个容器。

第1步 - 使用以下命令构建Docker文件 -

FROM ubuntu 
MAINTAINER [email protected] 
CMD [“echo” , “hello world”] 

这里,CMD仅用于打印hello world

CMD

第2步 - 使用Docker build命令构建映像

构建命令

第3步 - 从图像运行容器。

运行一个容器

ENTRYPOINT

该命令也可以用于在运行时为容器执行命令。但是我们可以使用ENTRYPOINT命令更灵活。

语法

ENTRYPOINT command param1 

选项

  • command - 这是在启动容器时运行的命令。

  • param1 - 这是输入到命令中的参数。

返回值

该命令将相应执行。

我们来看一个例子来更多地了解入口点。在我们的例子中,我们将在我们的Docker文件中输入一个简单的echo命令,并创建一个图像并从中启动一个容器。

第1步 - 使用以下命令构建Docker文件 -

FROM ubuntu 
MAINTAINER [email protected] 
ENTRYPOINT [“echo”]

入口点

第2步 - 使用Docker build命令构建映像

Docker构建命令

第3步 - 从图像运行容器。

来自图像的容器

ENV

该命令用于设置容器中的环境变量。

语法

ENV key value 

选项

  • Key - 这是环境变量的关键。

  • vlaue - 这是环境变量的值。

返回值

该命令将相应执行。

在我们的例子中,我们将在我们的Docker文件中输入一个简单的echo命令,并创建一个图像并从中启动一个容器。

第1步 - 使用以下命令构建Docker文件 -

FROM ubuntu 
MAINTAINER [email protected] 
ENV var1=Tutorial var2=point 

ENV

第2步 - 使用Docker build命令构建映像

ENV构建Docker命令

第3步 - 从图像运行容器。

ENV运行容器

第4步 - 最后,执行env命令查看环境变量。

ENV命令

WORKDIR

该命令用于设置容器的工作目录。

语法

WORKDIR dirname 

选项

  • dirname - 新的工作目录。如果该目录不存在,它将被添加。

返回值

该命令将相应执行。

在我们的例子中,我们将在我们的Docker文件中输入一个简单的echo命令,并创建一个图像并从中启动一个容器。

第1步 - 使用以下命令构建Docker文件 -

FROM ubuntu 
MAINTAINER [email protected] 
WORKDIR /newtemp 
CMD pwd

WORKDIR

第2步 - 使用Docker build命令构建映像

Workdir构建命令

第3步 - 从图像运行容器。

WORKDIR运行命令

18 容器链接

容器链接允许多个容器相互链接。这是比暴露端口更好的选择。让我们一步一步来了解它是如何工作的。

第1步 - 使用Jenkins pull命令下载Jenkins图像(如果它尚不存在)

集装箱链接

步骤2 - 一旦图像可用,运行容器,但是这次可以使用--name选项为容器指定名称这将是我们的源容器

名称选项

第3步 - 接下来是启动目标容器的时候了,但是这一次,我们会将它与源容器链接起来。对于我们的目标容器,我们将使用标准的Ubuntu镜像。

标准的Ubuntu映像

当您执行docker ps时,您将看到两个容器正在运行。

第4步 - 现在,连接到接收容器。

接收容器

然后运行env命令。您将注意到与源容器链接的新变量。

新变量

源限制器

19 存储

存储驱动程序

Docker有多个存储驱动程序,允许用户使用底层存储设备。下表显示了不同的存储驱动程序以及用于存储驱动程序的技术。

Technology Storage Driver
OverlayFS overlay or overlay2
AUFS aufs
Btrfs brtfs
Device Manager devicemanager
VFS vfs
ZFS zfs

现在让我们来讨论一些您将使用各种存储驱动程序的实例 -

AUFS

  • 这是一个稳定的司机; 可用于生产就绪的应用程序。

  • 它具有良好的内存使用情况,对于确保集装箱的平滑Docker体验非常有用。

  • 应该考虑与该驱动程序相关的高写入活动。

  • 对于Platform作为服务类型工作的系统来说,这非常有用。

Devicemapper

  • 这是一个稳定的司机; 确保了Docker的流畅体验。

  • 该驱动程序适用于在实验室中测试应用程序。

  • 该驱动程序符合主要的Linux内核功能。

BTRFS

  • 该驱动程序符合主要的Linux内核功能。

  • 应该考虑与该驱动程序相关的高写入活动。

  • 该驱动程序适用于维护多个构建池的实例。

Ovelay

  • 这是一个稳定的驱动程序,它与主要的Linux内核功能一致。

  • 它有很好的内存使用。

  • 该驱动程序适用于在实验室中测试应用程序。

ZFS

  • 这是一个稳定的驱动程序,适合在实验室中测试应用程序。

  • 这对平台即服务类型工作的系统很有用。

要查看正在使用的存储驱动程序,请发出docker info命令。

语法

docker info 

选项

没有

返回值

该命令将提供Docker主机上安装的Docker组件的所有相关信息。

sudo docker info 

输出

以下输出显示使用的主驱动程序是aufs驱动程序,并且根目录存储在/ var / lib / docker / aufs中

AUFS驱动程序

数据量

在Docker中,您有一个可以跨容器共享的独立卷。这些被称为数据量数据量的一些功能是 -

  • 它们在容器创建时被初始化。
  • 它们可以共享,也可以在许多容器中重复使用。
  • 对卷本身的任何更改都可以直接进行。
  • 它们即使在容器被删除后也存在。

我们来看看我们的Jenkins容器。我们来做一个码头检查来查看这个图像的细节。我们可以发出以下命令将docker inspect命令的输出写入文本文件,然后相应地查看该文件。

sudo docker inspect Jenkins > tmp.txt

当您使用more命令查看文本文件时,您会看到一个条目为JENKINS_HOME = / var / Jenkins_home

这是通过Jenkins图像在容器内完成的映射。

数据量

现在假设您想将容器中的卷映射到本地卷,那么在启动容器时需要指定-v选项。一个例子如下所示 -

sudo docker run d v /home/demo:/var/jenkins_home p 8080:8080 p 50000:50000 jenkins 

-v选项用于将容器中的卷/ var / jenkins_home映射到Docker主机上的/ home / demo位置

V选项

现在,如果在启动容器后进入Docker主机上/ home / demo位置,您将看到所有容器文件存在。

容器文件

更改容器的存储驱动程序

如果您想更改为用于容器的存储驱动程序,则可以在启动容器时执行此操作。这可以通过在使用docker run命令时使用-volume-driver参数来完成下面给出了一个例子 -

sudo docker run d volume-driver=flocker 
   v /home/demo:/var/jenkins_home p 8080:8080 p 50000:50000 jenkins

-volume驱动器选项用于指定容器中其他存储驱动器。

卷驱动程序

要确认驱动程序已更改,首先让我们使用docker ps命令查看正在运行的容器并获取容器标识。因此,首先发出以下命令 -

sudo docker ps

然后对容器发出docker检查,并使用该命令将输出置于文本文件中。

sudo docker inspect 9bffb1bfebee > temp.txt 

Docker反对命令

如果您浏览文本文件并转到指出VolumeDriver的行,您将看到驱动程序名称已更改。

驱动程序名称已更改

创建一个卷(Creating a Volume)

可以使用docker命令事先创建卷让我们更多地了解这个命令。

语法

docker volume create –-name=volumename –-opt options

选项

  • name - 这是需要创建的卷的名称。

  • opt - 这些是创建卷时可以提供的选项。

返回值

该命令将输出创建的卷的名称。

sudo docker volume create –-name = demo opt o = size = 100m 

在上面的命令中,我们正在创建一个大小为100MB的卷,并带有一个演示名称。

输出

上述命令的输出如下所示 -

创建一个卷

列出所有卷(Listing all the Volumns)

您还可以列出docker volumes上的所有docker host关于这个命令的更多细节在下面给出 -

语法

docker volume ls 

选项

没有

返回值

该命令将输出docker host上的所有卷

sudo docker volume ls

输出

上述命令的输出如下所示 -

列出所有的卷输出

20 网络

Docker负责网络方面的工作,以便容器可以与其他容器以及Docker主机进行通信。如果您在Docker主机上执行ifconfig,您将看到Docker以太网适配器。Docker安装在Docker主机上时创建此适配器。

IFCONFIG

这是Docker主机和Linux主机之间的桥梁。现在我们来看看Docker中与网络相关的一些命令。

列出所有Docker网络

该命令可用于列出主机上与Docker相关的所有网络。

语法

docker network ls 

选项

没有

返回值

该命令将输出Docker主机上的所有网络。

sudo docker network ls

输出

上述命令的输出如下所示

Docker Networks

检查Docker网络

如果您想查看与Docker关联的网络的更多详细信息,则可以使用Docker 网络检查命令。

语法

docker network inspect networkname 

选项

  • networkname -这是你需要检查网络的名称。

返回值

该命令将输出关于网络的所有细节。

sudo docker network inspect bridge 

输出

上述命令的输出如下所示 -

检查Docker网络

现在让我们运行一个容器,看看我们再次检查网络时会发生什么。让我们用下面的命令启动一个Ubuntu容器 -

sudo docker run –it ubuntu:latest /bin/bash 

在网络中运行容器

现在,如果我们通过以下命令检查网络名称,您现在将看到容器已连接到网桥。

sudo docker network inspect bridge

附着在桥上的集装箱

创建你自己的新网络

可以在启动容器之前在Docker中创建一个网络。这可以通过以下命令完成 -

语法

docker network create –-driver drivername name 

选项

  • drivername - 这是用于网络驱动程序的名称。

  • name - 这是给网络的名称。

返回值

该命令将输出新网络的长ID。

sudo docker network create –-driver bridge new_nw 

输出

上述命令的输出如下所示 -

长ID

您现在可以在启动容器时附加新网络。所以让我们用下面的命令启动一个Ubuntu容器 -

sudo docker run –it –network=new_nw ubuntu:latest /bin/bash

新网络

现在,当您通过以下命令检查网络时,您会看到连接到网络的容器。

sudo docker network inspect new_nw 

新西北

猜你喜欢

转载自blog.csdn.net/Ancony_/article/details/80049625