3 Hub
Docker Hub是云中的一个注册表服务,允许您下载由其他社区构建的Docker镜像。您也可以将自己的Docker构建映像上载到Docker中心。在本章中,我们将看到如何下载和使用Docker hub的Jenkins Docker镜像。
Docker中心的官方站点是 - https://www.docker.com/community-edition#/add_ons
第1步 - 首先,您需要在Docker中心上进行简单的注册。
第2步 - 注册后,您将登录到Docker Hub。
第3步 - 接下来,让我们浏览并找到Jenkins图像。
第4步 - 如果您在同一页面上向下滚动,您可以看到Docker pull命令。这将用于将Jenkins图像下载到本地Ubuntu服务器上。
第5步 - 现在,转到Ubuntu服务器并运行以下命令 -
sudo docker pull jenkins
要运行Jenkins,您需要运行以下命令 -
sudo docker run -p 8080:8080 -p 50000:50000 jenkins
请注意关于上述sudo命令的以下几点-
我们使用sudo命令来确保它以root用户身份运行。
在这里,jenkins是我们想要从Docker集线器下载并安装在我们的Ubuntu机器上的映像的名称。
-p用于将内部Docker镜像的端口号映射到我们的主Ubuntu服务器,以便我们可以相应地访问容器。
4 Images
在Docker中,一切都基于image。imiages是文件系统和参数的组合。让我们以Docker中的以下命令为例。
docker run hello-world
Docker命令是特定的,并告知操作系统上的Docker程序需要完成某些操作。
在运行命令用于提的是,我们要创建一个图像,然后将其称为一个实例的容器。
最后,“hello-world”代表制作容器的图像。
现在我们来看看如何使用Docker Hub中可用的CentOS镜像在我们的Ubuntu机器上运行CentOS。我们可以通过在我们的Ubuntu机器上执行以下命令来完成此操作 -
sudo docker run centos –it /bin/bash
请注意关于上述sudo命令的以下几点-
我们使用sudo命令来确保它以root权限运行。
在这里,centos是我们想要从Docker Hub下载并安装在我们的Ubuntu机器上的映像的名称。
-我们习惯于说,我们希望以交互模式运行。
/ bin / bash用于在CentOS启动并运行后运行bash shell。
显示Docker images
要查看系统上的Docker镜像列表,可以发出以下命令。
docker images
该命令用于显示当前安装在系统上的所有图像。
语法
docker images
选项
没有
返回值
输出将提供系统上的图像列表。
例
sudo docker images
输出
当我们运行上面的命令时,它会产生以下结果 -
从上面的输出中,您可以看到服务器有三个图像:centos,newcentos和jenkins。每个图像都有以下属性 -
TAG - 用于逻辑标记图像。
Image ID - 用于唯一标识图像。
Created - 图像创建后的天数。
Virtual Size - 图像的大小。
下载Docker镜像
可以使用Docker 运行命令从Docker Hub下载图像。让我们详细看看我们如何做到这一点。
语法
以下语法用于在Docker容器中运行命令。
docker run image
选项
Image - 这是用于运行容器的图像的名称。
返回值
输出将在所需的容器中运行命令。
例
sudo docker run centos
如果该命令不存在,该命令将下载centos映像,并将该操作系统作为容器运行。
输出
当我们运行上面的命令时,我们会得到以下结果 -
您现在将看到下载的CentOS Docker镜像。现在,如果我们运行Docker images命令来查看系统上的图像列表,我们也应该能够看到centos图像。
删除Docker镜像
系统上的Docker镜像可以通过docker rmi命令删除。让我们更详细地看看这个命令。
docker rmi
该命令用于删除Docker镜像。
句法
docker rmi ImageID
选项
ImageID - 这是需要删除的图像的ID。
返回值
输出将提供已删除图像的图像ID。
例
sudo docker rmi 7a86f8ffcb25
这里,7a86f8ffcb25是newcentos图像的图像ID 。
输出
当我们运行上面的命令时,它会产生以下结果 -
让我们来看看更多的图像上的Docker命令。
docker images -q
该命令仅用于返回images的 image ID。
句法
docker images
选项
q - 它通知Docker命令仅返回Image ID。
返回值
输出将仅显示Docker主机上图像的图像ID。
例
sudo docker images -q
输出
当我们运行上面的命令时,它会产生以下结果 -
docker inspect
该命令用于查看图像或容器的详细信息。
语法
docker inspect Repository
选项
Repository - 这是图像的名称。
返回值
输出将显示图像的详细信息。
例
sudo docker inspect jenkins
输出
当我们运行上面的命令时,它会产生以下结果 -
5 Containers
容器是可以使用Docker运行命令运行的Docker镜像的实例。Docker的基本目的是运行容器。我们来讨论一下如何使用容器。
运行一个容器
使用Docker run命令管理容器的运行。要以交互模式运行容器,首先启动Docker容器。
sudo docker run –it centos /bin/bash
然后点击Crtl + p,你将返回到你的OS shell。
然后您将运行在Ubuntu服务器上的CentOS系统的实例中。
容器列表
可以通过docker ps命令列出机器上的所有容器。该命令用于返回当前正在运行的容器。
docker ps
语法
docker ps
选项
没有
返回值
输出将显示当前正在运行的容器。
例
sudo docker ps
输出
当我们运行上面的命令时,它会产生以下结果 -
让我们看看docker ps命令的更多变体。
docker ps -a
该命令用于列出系统上的所有容器
语法
docker ps -a
选项
─a - 它通知docker ps命令列出系统上的所有容器。
返回值
输出将显示所有容器。
例
sudo docker ps -a
输出
当我们运行上面的命令时,它会产生以下结果 -
docker history
使用此命令,您可以看到通过容器运行图像的所有命令。
语法
docker history ImageID
选项
ImageID - 这是您想要查看针对其运行的所有命令的Image ID。
返回值
输出将显示对该图像运行的所有命令。
例
sudo docker history centos
以上命令将显示所有针对centos映像运行的命令。
输出
当我们运行上面的命令时,它会产生以下结果 -
6 使用Containers
在本章中,我们将详细探讨我们可以用容器做什么。
docker top
使用此命令,您可以看到容器中的顶级进程。
语法
docker top ContainerID
选项
ContainerID - 这是您希望查看顶级流程的容器ID。
返回值
输出将显示容器中的顶级进程。
例
sudo docker top 9f215ed0b0d3
以上命令将显示容器中的顶级进程。
输出
当我们运行上面的命令时,它会产生以下结果 -
docker stop
该命令用于停止正在运行的容器。
语法
docker stop ContainerID
选项
ContainerID - 这是需要停止的容器ID。
返回值
输出将给出停止的容器的ID。
例
sudo docker stop 9f215ed0b0d3
上述命令将停止Docker容器9f215ed0b0d3。
输出
当我们运行上面的命令时,它会产生以下结果 -
docker rm
该命令用于删除容器。
语法
docker rm ContainerID
选项
ContainerID - 这是需要删除的容器ID。
返回值
输出将提供已移除容器的ID。
例
sudo docker rm 9f215ed0b0d3
上述命令将删除Docker容器9f215ed0b0d3。
输出
当我们运行上面的命令时,它会产生以下结果 -
docker stats
该命令用于提供正在运行的容器的统计信息。
语法
docker stats ContainerID
选项
ContainerID - 这是需要提供统计信息的容器ID。
返回值
输出将显示容器的CPU和内存利用率。
例
sudo docker stats 9f215ed0b0d3
以上命令将提供Container 9f215ed0b0d3的 CPU和内存使用情况。
输出
当我们运行上面的命令时,它会产生以下结果 -
docker attach
该命令用于附加到正在运行的容器。
语法
docker attach ContainerID
选项
ContainerID - 这是您需要附加的容器ID。
返回值
没有
例
sudo docker attach 07b0b6f434fe
上述命令将附加到Docker容器07b0b6f434fe。
输出
当我们运行上面的命令时,它会产生以下结果 -
一旦你连接到Docker容器,你可以运行上面的命令来查看该Docker容器中的进程利用率。
docker pause
该命令用于暂停正在运行的容器中的进程。
语法
docker pause ContainerID
选项
ContainerID - 这是您需要暂停容器中的进程的Container ID。
返回值
已暂停的容器的ContainerID。
例
sudo docker pause 07b0b6f434fe
上述命令将暂停正在运行的容器07b0b6f434fe中的进程。
输出
当我们运行上面的命令时,它会产生以下结果 -
docker unpause
该命令用于在正在运行的容器中取消暂停进程。
语法
docker unpause ContainerID
选项
ContainerID - 这是您需要将容器中的进程取消暂停的容器ID。
返回值
正在运行的容器的ContainerID。
例
sudo docker unpause 07b0b6f434fe
上述命令将取消暂停正在运行的容器中的进程:07b0b6f434fe
输出
当我们运行上面的命令时,它会产生以下结果 -
docker kill
该命令用于终止正在运行的容器中的进程。
语法
docker kill ContainerID
选项
ContainerID - 这是您需要杀死容器中的进程的Container ID。
返回值
正在运行的容器的ContainerID。
例
sudo docker kill 07b0b6f434fe
上述命令将终止正在运行的容器07b0b6f434fe中的进程。
输出
当我们运行上面的命令时,它会产生以下结果 -
Docker - 容器生命周期(Container Lifecycle)
下面的插图解释了Docker容器的整个生命周期。
最初,Docker容器将处于创建状态。
然后在使用Docker run命令时,Docker容器进入运行状态。
Docker kill命令用于终止现有的Docker容器。
Docker pause命令用于暂停现有的Docker容器。
Docker stop命令用于暂停现有的Docker容器。
Docker run命令用于将容器从stop状态恢复为run状态。