我有这个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”“ mine”(带有标签“ latest”),在stackoverflow上。 这是如此基础,很难找到答案。

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

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

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

忠告?

#1楼 票数:6 已采纳

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

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

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

#2楼 票数:2

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

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

对于交互式进程(例如shell),必须一起使用-i -t以便为容器进程分配tty。 -i -t通常写为-it,您将在后面的示例中看到它。 当客户端从管道接收其标准输入时,禁止指定-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

#3楼 票数:1

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

docker run -it mine bash

  ask by dfrankow translate from so

未解决问题?本站智能推荐:

10回复

Ubuntu 16.04 映像中的 Docker 时区

我已经使用 Ubuntu 16.04 映像创建了一个 Docker 容器。 创建容器后,我检查了容器内的日期: 但是,我需要它来使用亚洲/加尔各答时区。 所以我尝试更改/etc/timezone文件,然后docker stop和docker start容器,但它不起作用。 它仍然显示相同的时
3回复

在ubuntu中运行docker build:16.04 docker

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

Docker映像可在Ubuntu 16.04上运行,但在Ubuntu 18.04上将失败

我以为Docker映像独立于操作系统工作,并且不需要在操作系统本身上安装任何依赖项。 我有一个使用dockerfile构建的docker映像: 并使用以下docker-compose文件运行映像: 这在Ubuntu 16.04机器上可以很好地运行,但是当我在Ubuntu 1
1回复

在 Ubuntu 16.04 中没有 sudo 用户无法运行 Docker 命令

我试图在没有 sudo 用户的情况下运行 Docker 命令,但他们给了我以下错误: 我按照在线提供的步骤操作:创建 docker 组 --> sudo groupadd docker 将用户添加到sudo usermod -aG docker $USER组 --> sudo use
2回复

ubuntu 18.04 docker 映像中的 Docker 未运行

我已经安装了一个 ubuntu 18.04 容器,我试图在其中启动 docker 服务。 我得到了错误, 是否可以在 docker 镜像中运行 docker? 如何授予运行嵌套图像的权限?
1回复

从Ubuntu 16.04到CentOS 6.9的Docker映像

我对从Ubuntu 16.04(内核4.15.0-29-通用)创建Docker映像并在CentOS 6.9(内核2.6.32-696.30.1.el6.x86_64)上运行感兴趣。 它们是否兼容以平稳运行? 谢谢您的帮助!
1回复

Ubuntu 16.04 Cron运行Docker容器

我有一个运行Ubuntu 16.04的虚拟机,我想在该虚拟机上运行cron调度的Docker容器。 我已经配置了Docker主机和映像存储库,以使VM可以访问它们,并且映像在计算机上运行良好。 我的问题是,当我在/var/spool/cron使用crontab -e创建cron计划时,容
2回复

在 Ubuntu 16.04 docker 映像中安装 apt-get:'/etc/resolv.conf':设备或资源繁忙

在相当普通的 Ubuntu 16.04 映像中运行 apt-get install 时,我收到以下错误消息: 不过,这些软件包似乎已正确安装。 如何解决? 我的 Dockerfile 看起来像这样: