繁体   English   中英

运行 ubuntu 16.04 bash shell 在 Z05B6053C41A2130AFD6BFCA3 中

Run ubuntu 16.04 bash shell in a docker image

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有这个 Dockerfile:

FROM ubuntu:16.04

我跑

docker build -t mine .

它建立。 然后我跑

docker exec -it mine /bin/bash

它说

Error: No such container: mine

我确定我遗漏了一些简单的东西,但我已经用 Google 搜索了 docker 图像名称,我运行docker images ,它显示了“CONTAINER ID”“我的”(带有“最新”标签),我看过在堆栈溢出。 这是非常基本的,很难找到答案。

我在 OS X 上运行 docker 19.03.2,构建 6a30dfc。

编辑:如果我运行docker run mine的,它会运行并立即退出(当然,因为这就是 Dockerfile 所说的)。 然后是一个容器(未运行)。 然后,如果我通过 id 执行该容器,它会显示“Container..hex.. 未运行”,这是有道理的。

我想我想要在 Ubuntu 16.04 中运行 bash shell 的最简单方法。

建议?

3 个回复

Docker exec命令用于在正在运行的容器内执行命令。 您只需使用docker run -it mine /bin/bash run您的容器。

如果您的最终目标是自行运行 Ubuntu 的 bash,您可以跳过build阶段,只需执行docker run -it ubuntu:16.04 /bin/bash

注意-i-t标志。 第一个表示您的容器化程序(即 bash)可能会收到一些用户输入。 因此,docker 将保持其标准输入打开。 第二个标志是使用 Linux 伪终端(PTY)作为命令(即 bash)的控制终端。 并且这些标志的组合可以让你拥有正常的交互式 shell 体验。

这个docker run mine命令背后的原因是,它将运行容器但它将被终止,因为它不会分配伪 tty

-t              : Allocate a pseudo-tty
-i              : Keep STDIN open even if not attached

对于交互式进程(如 shell),您必须一起使用 -i -t 才能为容器进程分配 tty。 -i -t 通常写成 -it,正如您将在后面的示例中看到的那样。 当客户端从 pipe 接收其标准输入时,禁止指定 -t,如下所示:

echo test | docker run -i busybox cat

因此,在您的情况下,您应该为 ubuntu 容器分配伪 tty。

docker run --name my_ubuntu_container -it ubuntu bash

然后你可以运行

--tty , -t      Allocate a pseudo-TTY
docker exec -it my_ubuntu_container bash

那是因为您需要在使用exec之前先运行它

docker run -it mine bash
1 在ubuntu中运行docker build:16.04 docker

我想在docker容器中构建一个docker镜像。 因此,我尝试在https://docs.docker.com/engine/installation/linux/ubuntu/之后创建一个由docker安装的ubuntu docker映像,但是失败了。 当我在上述Dockerf ...

3 Ubuntu 16.04 LTS 上的 Docker

我在 VirtualBox 上安装了 Ubuntu 16.04 LTS (ubuntu-16.04.1-server-amd64.iso)。 使用以下命令检查 Docker 的状态: 我得到的service docker.io status : 如果我尝试安装它: 我得到docker.io ...

5 Docker运行映射端口在ubuntu 16.04中不起作用

我正在使用Docker版本18.03.1-ce,在ubuntu 16.04上构建9ee9f40并尝试运行以下命令: 它没有在使用https://localhost:4000的浏览器中打开。 但是如果我与 它在使用https://localhost:5000的浏览器中打开。 ...

2018-06-20 13:55:47 0 238   docker
7 docker ubuntu容器:链接到bash的shell仍然启动shell

好吧,伙计们,所以我尝试在基于ubuntu:14.04的docker容器中安装rvm。 在这个过程中,我发现有些人做了这样的事情,以确保docker命令也与bash一起运行: 现在奇怪的事情发生了,我希望你们中的某个人可以向我解释: 有人能解释一下这里发生了什么吗? 我知道我 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM