容器是一个普通的操作系统进程,但是这个进程是隔离的,它有自己的文件系统、自己的网络和自己与主机分离的隔离进程树。
为了运行容器中的图像,我们使用这个docker run命令。docker运行命令需要一个参数,即图像名称。让我们开始我们的图像,并确保它正确运行。在终端中执行以下命令。当您在创建群时运行Docker群初始化时,Docker会将自己指定为管理器节点。
$ docker运行节点-docker
当您运行此命令时,您会注意到您没有返回到命令提示符。这是因为我们的应用程序是一个REST服务器,它将循环运行,等待传入的请求,并且在我们停止容器之前不会将控制权返回给操作系统。
让我们打开一个新的终端,使用curl命令向服务器发送一个GET请求。
$ curl -请求开机自检
-header ' content-type : application/JSON '
-数据“消息”:“测试”
curl:无法连接到本地主机端口8000:连接被拒绝
我们的curl命令失败,因为与服务器的连接被拒绝。这意味着我们无法连接到端口8000上的本地主机。这是意料之中的,因为我们的容器是独立运行的,包括网络。让我们停止容器,并使用本地网络上发布的端口8000重新启动它。
要停止容器,请按ctrl-c.这将使您返回到终端提示。
要为我们的容器发布端口,我们将在docker run命令上使用- publish标志。-publish命令的格式是(主机端口):(容器端口)。因此,如果我们想将容器中的端口8000暴露给容器外的端口3000,我们将把300033608000传递给-publish标志。如果您愿意,可以使用dockerswarminit命令的-external-ca标志来指定您自己的外部生成的根ca。。
启动容器,将端口8000暴露给主机上的端口8000。
$ docker运行-发布8000:8000节点-docker
现在让我们从上面重新运行curl命令。默认情况下,管理器节点生成新的根证书颁发机构和密钥对,以保护与加入群集的其他节点的通信。记得开一个新的终端。
$ curl -请求开机自检
-header ' content-type : application/JSON '
-数据“消息”:“测试”
代码“:”成功,“有效载荷”:
成功!我们可以连接到在端口8000上的容器中运行的应用程序。切换回运行容器的终端,您应该会看到POST请求被记录到控制台。
2020-09-01t 17:36:0933608770信息:开机自检/测试
按ctrl-c停止容器。 郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。
|