首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行集装箱意味着什么?

运行集装箱意味着什么?
EN

Stack Overflow用户
提问于 2019-04-04 08:53:50
回答 2查看 467关注 0票数 0

“码头主管”只能用于运行容器,但运行容器的含义是什么?这是否意味着容器应该在计算什么?还是关于我为容器定义的命令的问题?为什么我的TensorFlow容器总是处于停止状态?

在使用“docker”构建tensorflow容器后,容器自动停止。我需要重新启动它,然后对它执行命令。为什么在我构建容器之后,容器就不能一直运行?

代码语言:javascript
运行
复制
docker run -it --runtime=nvidia tensorflow/tensorflow:latest-gpu-py3

然后它会弹出一个bash,我可以用它来控制容器。但在我离开后,集装箱停了下来。这意味着,我只能使用docker ps -a来查看我的容器,但是docker ps不能。如果我想再次使用我的容器,我必须重新启动容器。

UPDATE1: --如果我想创建像VM这样的容器,就不能使用docker run和诸如python ..这样的时态[command]。在命令完成后,容器将永久失去控制。docker restart无法再次启动容器。因此,docker exec不能应用于它。而不是,使用bash或nothing作为[command]可以创建一个容器,可以重新启动,因此可以与docker exec一起应用。

UPDATE2: docker run -d -it可以创建一个正在运行的容器(但是bash不会弹出,即使使用bash也不会弹出)。直接使用docker exec -it container_name bash可以再次控制正在运行的容器,而不需要docker restart。此时,退出bash将不会停止容器。

EN

回答 2

Stack Overflow用户

发布于 2019-04-04 09:01:21

docker ps -adocker ps之间的区别正是您要寻找的:

来自文献资料

代码语言:javascript
运行
复制
--all , -a      Show all containers (default shows just running) 

所以

  • docker ps只为您提供正在运行的容器
  • docker ps -a还向您显示已停止的

因此,如果您希望容器能够长时间运行(就像对web服务器一样),那么容器命令可能会出现问题,而不是保持容器正常运行。

还请注意,如果您使用选项-ti运行容器,就像您做的那样,您会得到一个交互式的tty。

代码语言:javascript
运行
复制
--tty , -t              Allocate a pseudo-TTY
--interactive , -i      Keep STDIN open even if not attached

这基本上意味着,一旦退出交互式上下文,容器就会关闭。

在分离模式下运行它,使用选项-d,可能是您要寻找的

代码语言:javascript
运行
复制
docker run -d --runtime=nvidia tensorflow/tensorflow:latest-gpu-py3

相关文件:

代码语言:javascript
运行
复制
--detach , -d       Run container in background and print container ID

https://docs.docker.com/engine/reference/commandline/run/

票数 0
EN

Stack Overflow用户

发布于 2019-04-04 09:04:30

当在容器中运行活动进程时,容器正在运行。运行此tensorflow容器时,由于没有正在运行的进程,它将退出

如果你要跑

代码语言:javascript
运行
复制
docker run -it --runtime=nvidia tensorflow/tensorflow:latest-gpu-py3 bash

代码语言:javascript
运行
复制
docker run -it --runtime=nvidia tensorflow/tensorflow:latest-gpu-py3 python <python script name>

然后容器将作为一个进程运行bash/python脚本,因此在该进程运行时保持处于运行状态。

使用以下方式查看正在运行的进程:

代码语言:javascript
运行
复制
docker ps

查看所有容器(包括已停止/退出的任务),其中包括:

代码语言:javascript
运行
复制
docker ps -a
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55511735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档