docker使用-02将镜像作为容器运行

在上个模块中,我们创建了一个自己的镜像test_docker,现在我们可以运行该镜像,并查看我们的应用程序是否正常运行。

容器

容器是一个常规的操作系统进程,除了该进程是独立的之外,因为它具有自己的文件系统,自己的网络以及独立于主机的独立的进程树。

1.在容器内运行镜像

docker run <镜像名>

image
运行此命令后,您会注意到您没有返回到命令提示符。这是因为我们的应用程序是REST服务器,并且在循环中运行以等待传入的请求,而不会将控制权交还给OS,直到我们停止容器为止。
接口调用
在浏览器访问接口的时候,出现异常。因为与服务器的连接被拒绝。这意味着,我们无法在端口1111上连接到本地主机。这是可以预期的,因为我们的容器是独立运行的,其中包括网络。让我们停止容器,并使用在本地网络上发布的端口1111重新启动。
image
给容器发布端口

dcoker run -p <host port>:<container port> <镜像名称>

--publish 简称 -p
改命令的格式为[host port]:[container port]
因此,如果我们想将容器内的端口5000暴露给容器外的端口3000,我们将传递3000:5000给该--publish标志。
停掉刚刚的服务,重新运行
image
再次访问接口
image

如果请求时出现ERR_EMPTY_RESPONS错误

image
需要将flask应用中app.run(host='0.0.0.0', port=1111)host改成0.0.0.0

2.以分离模式运行

docker run -d -p <host port>:<container port> <镜像名称>

到此,我们的镜像可以运行了,但是我们的应用程序是Web服务器,我们不必连接到容器。Docker可以以分离模式或在后台运行您的容器。为此,我们可以使用--detach或-d简称。Docker与以前一样启动您的容器,但是这次将“与容器分离”,并返回到终端提示符。
image
Docker在后台启动了我们的容器,并在终端上打印了容器ID。

3.列出容器

查看运行中的容器
docker ps
查看所有容器包括未运行的
docker ps -a

image

4.停止、启动与命名容器

停止容器
docker stop <容器名或容器id>
重启容器
docker restart <容器名或容器id>
容器命名
在运行容器的时候,如果不命名容器,会随机生成一个名称,使用--name参数可以对容器命名
docker run -d -p <host port>:<container port> --name <容器名称> <镜像名称>

停止
image
重启
image
命名容器
image

5.删除容器

docker rm <容器名或容器id>

image

posted @ 2022-10-19 10:58  一枚码农  阅读(153)  评论(0编辑  收藏  举报