在上一个模块中,我们创建了示例应用程序,然后创建了一个用于构建映像的 Dockerfile。我们使用命令创建了我们的图像docker build。现在我们有了一个图像,我们可以运行该图像并查看我们的应用程序是否正常运行。
容器是一个普通的操作系统进程,只是这个进程是隔离的,有自己的文件系统,自己的网络,以及与主机分离的自己的隔离进程树。
要在容器内运行映像,我们使用该docker run命令。该docker run命令需要一个参数,即图像的名称。让我们启动我们的图像并确保它正确运行。在终端中运行以下命令:
$ docker run java-docker
运行此命令后,您会注意到我们没有返回到命令提示符。这是因为我们的应用程序是一个 REST 服务器,并且在循环中运行,等待传入的请求,而不会将控制权返回给操作系统,直到我们停止容器。
让我们打开一个新终端,然后GET使用curl命令向服务器发出请求。
$ curl –request GET \
–url http://localhost:8080/actuator/health \
–header content-type: application/json
curl: (7) Failed to connect to localhost port 8080: Connection refused
如您所见,我们的curl命令失败了,因为与我们的服务器的连接被拒绝。这意味着我们无法在端口 8080 上连接到本地主机。这是意料之中的,因为我们的容器是独立运行的,包括网络。让我们停止容器并使用我们本地网络上发布的端口 8080 重新启动。
要停止容器,请按ctrl-c。这将使您返回到终端提示。
要为我们的容器发布端口,我们将在命令中使用–publish flag(-p简称) docker run。–publish命令的格式为[host port]:[container port]. 因此,如果我们想将容器内的端口 8000 暴露给容器外的端口 8080,我们将传递8080:8000给–publish标志。
启动容器并将端口 8080 暴露给主机上的端口 8080。
$ docker run –publish 8080:8080 java-docker
现在,让我们从上面重新运行 curl 命令。
$ curl –request GET \
–url http://localhost:8080/actuator/health \
–header content-type: application/json
{“status”:”UP”}
成功!我们能够通过端口 8080 连接到在容器内运行的应用程序。
现在,按 ctrl-c 停止容器。
Ubuntu是一个以桌面应用为主的Linux操作系统。它是一个开放源代码的自由软件,提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境。Ubuntu将为全球数百个公司提供商业支持。 ...
查看全文Docker采取了一种保守的方法来清理未使用的对象(通常称为“垃圾收集”),例如图像,容器,卷和网络:除非您明确要求Docker这样做,否则通常不会删除这些对象。这可能会导致Docker使用额外的磁盘空...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,四位知情人士今日透露,亚马逊、微软和谷歌这三大云计算服务提供商,正在竞争波音公司(Boeing)价值10亿美元的云服务合同。 这些...
查看全文新浪科技讯 北京时间5月27日晚间消息,据报道,多位知情人士今日称,继加州、纽约州和华盛顿州之后,马萨诸塞州和宾夕法尼亚州的总检察长也加入到对亚马逊的反垄断调查中。 如今,越来越...
查看全文
您好!请登录