docker安装主机的/目录到容器的/在debian wheezy 7.8

我在我的debian wheezy主机上创build了一个非常基本的图像。 这是Dockerfile:

FROM ubuntu:trusty USER root # Activate multiverse repos RUN echo 'deb http://archive.ubuntu.com/ubuntu/ trusty universe multiverse' >> /etc/apt/sources.list RUN echo 'deb http://security.ubuntu.com/ubuntu trusty-security universe multiverse' >> /etc/apt/sources.list RUN echo 'deb http://archive.ubuntu.com/ubuntu/ trusty-updates universe multiverse' >> /etc/apt/sources.list RUN apt-get update RUN apt-get install -y supervisor WORKDIR / CMD ["/usr/bin/supervisord", "-n"] 

为了构build图像,我使用了docker build -t basic-ubuntu .

为了运行容器,我使用了docker run -d basic-ubuntu

要进入容器,我使用了docker exec -i -t <container_id> bash

当我进入容器时,我所看到的是容器的根目录/与主机具有相同的内容。 当我在容器上创build一个文件时,它也在主机上创build。 即使我在Dockerfile中添加了一些我在主机上没有的软件包的RUN apt-get install -y ,我在容器上找不到它。 实际上,即使容器上的$ PATHvariables与主机相同。

这里是我env的一些信息

 host$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 7.8 (wheezy) Release: 7.8 Codename: wheezy host$ docker version Client: Version: 1.10.1 API version: 1.22 Go version: go1.5.3 Git commit: 9e83765 Built: Thu Feb 11 19:20:12 2016 OS/Arch: linux/amd64 Server: Version: 1.10.1 API version: 1.22 Go version: go1.5.3 Git commit: 9e83765 Built: Thu Feb 11 19:20:12 2016 OS/Arch: linux/amd64 

docker工检查显示的坐骑

 "Mounts": [] 

对于完整的docker检查跟踪: http : //pastebin.com/t4uSu4ZH

我认为问题来自docker执行步骤。 因为构build和运行似乎正常工作。

我认为问题来自docker exec步骤

情况当然是这样,考虑到有一个容器在隔离你与主机。
(不同的文件系统,进程,根,用户…)

当你对容器执行“bash”时,你会看到一个提示:

  root@<short_container_id> 

如果你没有看到,那是因为你的docker exec没有正确执行。

如果你确实看到了,那么你认为主机上的内容实际上仍然是容器的内容。

同样相关的是,当与docker exec使用时,在-i (交互式)时会有一个潜在的bug。
请参阅“ 为什么在” docker exec “命令中存在” -i “和” -t “选项?

OP胺 在评论中证实了这种情况:

问题8755(“Docker的tty不是与dockerpipe理器的tty”)意味着-t (tty)不能正确打开一个tty在centos7上(不是centos6)。

即使TERM设置为xterm也会发生这种情况(请不要忘记问题9299 : docker exec-t通过时不会设置TERM env)


Op提到的另一个问题是:

当我回到debian安装docker的时候 ,我发现在必备软件中,“ kernel must be 3.10 at minimum ”,“ These older versions are known to have bugs ”。
而我的debian的内核版本是3.2。
解决scheme是升级到更新的debian版本,内核版本高于3.10

我遇到了docker volume mount function无法正常工作的相同问题。 这原来是内核版本问题。 在将我的Debian内核从3.2升级到3.16后,一切正常。

 $ uname -a Linux 3.16.0-0.bpo.4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3~bpo70+1 (2016-01-19) x86_64 GNU/Linux