将 Docker 镜像作为容器运行
Docker允许您使用Docker映像创建容器化、打包和隔离的环境,称为Docker容器。在这些Docker容器中,您可以构建、测试甚至部署您的应用程序。这使您可以轻松地与其他开发人员共享您的应用程序运行时环境。所有这一切都是可能的,因为有一个名为Docker镜像的只读模板。
您可以直接从任何Docker注册表(例如Dockerhub)中提取Docker镜像,或者使用Dockerfile中的bse镜像来构建您自己的自定义镜像。然后您可以使用Dockerbuild命令来构建您的Docker镜像。准备好Docker映像后,您可以使用Dockerrun命令创建与该映像关联的容器。然后,您可以通过容器的bash访问应用程序运行时环境。
所有这些都可以使用简单的Docker命令来完成。让我们讨论将Docker镜像作为容器运行的所有相关命令。
将Docker镜像作为容器运行
要运行与映像关联的容器,您的机器中需要已经存在一个映像。创建图像有两种不同的方法。
直接从Dockerhub拉取镜像。
使用Dockerfile创建镜像。
首先,让我们尝试直接从Dockerhub注册表中拉取镜像。我们将尝试使用Dockerpull命令拉取最新版本的Ubuntu镜像。为此,请执行下面提到的命令。
$ docker pull ubuntu:latest
如果您的机器中还没有具有相同摘要的映像,守护程序将尝试从Dockerhub中提取它。如果您已经有一个类似的图像,它不会拉出一个新的图像,而只是创建一个现有图像的副本。
要检查拉取是否成功,您可以列出所有图像。
$ docker images
你会发现镜像已经成功拉取了。
现在您已准备好ubuntu映像,让我们使用Dockerrun命令来运行与该映像关联的容器。
$ docker run -it --name=ubuntucontainer ubuntu bash
在上面的命令中,我们使用了交互和伪TTY选项,这将允许我们通过终端驱动程序与容器交互。我们已经使用name选项为容器命名。最后,我们指定了镜像的名称和容器启动后需要运行的命令。在这个命令中,命令是bash,它可以让我们访问容器的bash。
执行此命令后,您应该可以访问容器内的Ubuntu环境。您可以像使用Ubuntu机器一样与容器进行交互。要检查容器的状态,可以使用以下命令。
$ docker ps
此命令用于列出所有活动容器。
$ docker ps -a
此命令用于列出您机器中的所有现有容器。
另一种方法是使用Dockerfile创建映像。考虑下面的Dockerfile。
FROM ubuntu:latestWORKDIR /app
在上面的Dockerfile中,我们使用了FROM指令,它将允许我们使用ubuntu:latest镜像作为我们的基础镜像。我们已经使用WORKDIR指令将/app目录设置为默认工作目录。您现在可以使用Dockerbuild命令构建与此Dockerfile关联的映像。
$ docker build -t myubuntu:latest .
在这里,我们使用了-t选项,它允许我们为图像指定名称和标签。末尾的点指定Dockerfile的路径,即当前目录。执行此命令后,您可以通过列出图像来检查图像创建。
$ docker images
现在,您可以再次使用Dockerrun命令来运行与映像关联的容器。
$ docker run -it --name=ubuntucontainer myubuntu:latest bash
即使你的机器上没有镜像,你也可以直接使用Dockerrun命令。假设,您要创建一个与centos映像相关联的容器。可以直接使用下面的命令。
$ docker run -it --name=centosinstance centos:latest bash
在执行Dockerrun命令时,守护进程将首先检查您的系统上是否有centos映像。如果没有找到,就会在后台执行Dockerpull命令拉取centos镜像。完成后,它将执行Dockerstart命令以在后台启动与centos映像关联的容器。之后,它将使用Dockerrun命令来运行容器。所有这些都发生在后台。
综上所述,即使没有镜像,也可以直接使用Dockerrun命令运行与镜像关联的Docker容器。或者你可以先拉取或构建一个Docker镜像,然后使用Dockerrun命令创建一个容器。