Django ';docker exec';与'不同的环境;docker run'/';码头装卸工附件';环境

Django ';docker exec';与'不同的环境;docker run'/';码头装卸工附件';环境,django,docker,namespaces,copy,vagrant,Django,Docker,Namespaces,Copy,Vagrant,我最近尝试创建一个docker环境来开发django项目 我注意到,通过docker文件创建或复制的文件只有在使用“docker run”或“docker attach”时才可访问,在这种情况下,对于后者,您可以进入并查看您在适当位置移动的任何文件 但是,当运行“docker exec”时,容器似乎不会显示这些文件的任何痕迹。为什么会这样 Dockerfile ############################################################ # Docke

我最近尝试创建一个docker环境来开发django项目

我注意到,通过docker文件创建或复制的文件只有在使用“docker run”或“docker attach”时才可访问,在这种情况下,对于后者,您可以进入并查看您在适当位置移动的任何文件

但是,当运行“docker exec”时,容器似乎不会显示这些文件的任何痕迹。为什么会这样

Dockerfile

############################################################
# Dockerfile to run a Django-based web application
# Based on an Ubuntu Image
############################################################

# Set the base image to use to Ubuntu
FROM ubuntu:14.04

# Set env variables used in this Dockerfile (add a unique prefix, such as DOCKYARD)
# Local directory with project source
ENV DOCKYARD_SRC=hello_django
# Directory in container for all project files
ENV DOCKYARD_SRVHOME=/srv
# Directory in container for project source files
ENV DOCKYARD_SRVPROJ=/srv/hello_django

# Update the default application repository sources list
RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y python python-pip

# Create application subdirectories
WORKDIR $DOCKYARD_SRVHOME
RUN sudo mkdir media static logs

# Copy application source code to SRCDIR
COPY $DOCKYARD_SRC $DOCKYARD_SRVPROJ

# Install Python dependencies
RUN pip install -r $DOCKYARD_SRVPROJ/requirements.txt

# Port to expose
EXPOSE 8000

# Copy entrypoint script into the image
WORKDIR $DOCKYARD_SRVPROJ
COPY ./docker-entrypoint.sh /
config.vm.box = "hashicorp/precise64"
config.vm.network "forwarded_port", guest: 8000, host: 8000
config.vm.provision "docker" do |d|
    d.pull_images "django"
end
通过上面的Dockerfile,我的源文件夹hello_django被复制到它在/srv/hello_django中的适当位置,并且我的docker-entrypoint.sh也被成功地移动到root

我可以在“docker run-it bash”/“docker attach”中确认这一点,但不能通过“docker exec-it bash”访问其中任何一个

(Dockerfile从中获取)

问题演示

如果有关系的话,我会让docker穿过流浪汉

流浪汉档案

############################################################
# Dockerfile to run a Django-based web application
# Based on an Ubuntu Image
############################################################

# Set the base image to use to Ubuntu
FROM ubuntu:14.04

# Set env variables used in this Dockerfile (add a unique prefix, such as DOCKYARD)
# Local directory with project source
ENV DOCKYARD_SRC=hello_django
# Directory in container for all project files
ENV DOCKYARD_SRVHOME=/srv
# Directory in container for project source files
ENV DOCKYARD_SRVPROJ=/srv/hello_django

# Update the default application repository sources list
RUN apt-get update && apt-get -y upgrade
RUN apt-get install -y python python-pip

# Create application subdirectories
WORKDIR $DOCKYARD_SRVHOME
RUN sudo mkdir media static logs

# Copy application source code to SRCDIR
COPY $DOCKYARD_SRC $DOCKYARD_SRVPROJ

# Install Python dependencies
RUN pip install -r $DOCKYARD_SRVPROJ/requirements.txt

# Port to expose
EXPOSE 8000

# Copy entrypoint script into the image
WORKDIR $DOCKYARD_SRVPROJ
COPY ./docker-entrypoint.sh /
config.vm.box = "hashicorp/precise64"
config.vm.network "forwarded_port", guest: 8000, host: 8000
config.vm.provision "docker" do |d|
    d.pull_images "django"
end

您正在使用boot2docker虚拟机吗?()@VonC我刚刚在我的Vagrant文件中包含了相关部分,据我所知,我不认为我是。好吧,我只是被指出这个问题以防万一。有趣的问题:我不敢相信我的眼睛,所以我尝试复制这个行为,但没有成功;我使用相关的Dockerfile命令创建了一个docker图像(省略apt get等)。在我的例子中,
docker run
docker exec
都可以看到这些文件。你能把你的图像上传到docker hub吗?我在那里没有找到它;图像名称可以在你的屏幕截图中看到。@Olli谢谢你检查,我从我在帖子中链接的教程中下载了图像:我想注意,我想我已经尝试过了与过去的其他图像有相同的行为。