我正在我的debian wheezy主机上创建一个非常基本的图像。这是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"]
为了构建图像,我使用了docker build -t basic-ubuntu .
为了运行容器,我使用了docker run -d basic-ubuntu
要进入容器,我使用了docker exec -i -t <container_id> bash
当我进入容器时,我看到的是容器的根目录/
与主机具有相同的内容。当我在容器上创建文件时,它也在主机上创建。即使我在Dockerfile中添加了RUN apt-get install -y
我在主机上没有的某个包,但我在容器上找不到它。实际上,甚至容器上的$ PATH变量也与主机相同。
以下是我的环境
的一些信息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 inspect
显示的坐骑"Mounts": []
对于完整的码头工人检查跟踪:http://pastebin.com/t4uSu4ZH
我认为问题来自docker exec步骤。因为构建和运行似乎正常工作。
答案 0 :(得分:1)
我认为问题来自
docker exec
步骤
情况确实如此,考虑到容器可以隔离您与主机 (不同的文件系统,进程,root,用户......)
当你对某个容器“执行bash”时,你会看到一个提示:
root@<short_container_id>
如果你没有看到,那是因为你的docker exec不能正确执行。
如果你确实看到了,那么你认为主机上的内容实际上仍然是容器内容。
同样相关,与-i
一起使用时,docker exec
(互动)可能存在潜在错误。
请参阅“Why do there exist “-i
” and “-t
” options for the “docker exec
” command?”。
OP amine确认情况为in the comments:
Issue 8755 ("Docker tty is not a tty with docker exec")表示-t
(tty)未正确打开centos7上的tty(不是centos6)。
即使TERM
设置为xterm
,也会发生这种情况(不要忘记issue 9299:docker exec
在TERM
时未设置-t
env }通过)
Op提到的另一个问题是:
当我回到howto install docker in debian时,我发现在先决条件中:“
kernel must be 3.10 at minimum
”和“These older versions are known to have bugs
”。
我的debian的内核版本是3.2 解决方案是升级到更新的debian版本,内核版本高于3.10 。
答案 1 :(得分:0)
我遇到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