【发布时间】:2017-01-18 09:35:21
【问题描述】:
这个问题不重复了,因为我想获得一个交互式shell而不用-it标志运行。
我正在向 Docker 迈出第一步,以创建仅供内部使用的映像。
我从这个envirornment_full.df开始:
FROM ubuntu:16.04
ENTRYPOINT ["/bin/bash"]
然后我构建
docker rmi environment:full
docker build -t environment:full -f environment.df .
然后运行
docker run environment:full
跑步docker images -am 我看到了我的形象
REPOSITORY TAG IMAGE ID CREATED SIZE
environment full aa91bbd39167 4 seconds ago 129 MB
所以我运行它
docker run environment:full
我没有看到任何事情发生......
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5847c0a18f30 environment:full "/bin/bash" 21 seconds ago Exited (0) 20 seconds ago admiring_mirzakhani
还有
$ docker run environment:full -ti
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
root@aa768a585f33:/# exit
我想要 ubuntu 提示符,就像我在 SSH 连接中一样。而这个没有用户必须输入 -i 或 -tty 标志。
我怎样才能意识到这一点?
【问题讨论】:
-
你确定是 /bin/bash 而不是 /usr/bin/bash?它因发行版而异。
-
@nwinkler :添加了为什么它不是重复问题的解释
-
您是否有不想要
-it标志的原因?在我看来,Docker 只是在默认情况下不分配 tty 并且不启用 STDIN 的方式进行了优化。在大多数情况下,您都需要这种默认行为。在您的情况下,它不是默认值,因此您需要标志。我认为这可能是对 Docker 的潜在功能要求。 -
@HubertGrzeskowiak:我正在从虚拟机“环境”迁移到 docker,所以我还没有完全理解 docker 的主要目标。我将继续学习和编码,以掌握 docker 哲学
标签: bash docker dockerfile