在最后一个模块中,我们创建了一个示例应用程序,然后创建了一个用于生成图像的Dockerfile我们使用docker命令docker构建来创建我们的图像现在我们有了一个图像,我们可以运行这个图像,看看我们的应用程序是否正常工作
容器是一个普通的操作系统进程,除了这个进程是隔离的,因为它有自己的文件系统,自己的网络和自己与主机分离的隔离进程树。
为了运行容器中的图像,我们使用docker run命令docker运行命令需要一个参数,即图像的名称让我们开始我们的图像,并确保它工作正常在终端中运行以下命令
$ docker运行python—docker
运行此命令后,您会注意到没有返回到命令提示符这是因为我们的应用程序是一个REST服务器,在循环中运行,等待传入的请求,在我们停止容器之前不会将控制权返回给操作系统
让我们打开一个新的终端,然后GET使用curl命令向服务器发出请求。编辑/etc/docker/daemon.json并将ipv6密钥设置为true和fixed-cidr-v6您的IPv6子网的密钥。。
$ curl localhost:5000
curl:无法连接到本地主机端口5000:连接被拒绝
如您所见,我们的curl命令失败了,因为与服务器的连接被拒绝这意味着我们无法连接到端口5000上的本地主机这是意料之中的,因为我们的容器是独立运行的,包括网络让我们停止容器,并使用本地网络上发布的端口5000重新启动
要停止容器,请按Ctrl—C这将使您返回到终端提示
要发布容器的端口,我们将在命令中使用— publish标志docker run—publish命令的格式是:因此,如果我们想将容器中的端口5000暴露给容器外的端口3000,我们将把300033605000传递给—publish标志
当我们在容器中运行Flask应用程序时,我们不指定端口默认值为5000
$ docker运行—发布5000:5000 python—docker
现在,让我们从上面重新运行curl命令记得开一个新的终端
$ curl localhost:5000
你好,多克!
成功!我们可以通过端口5000连接到容器中运行的应用程序切换回容器运行的终端,您应该会看到记录到控制台的GET请求
按ctrl—c停止容器。在本例中,我们将其设置为2001:db8336013303360/64。