首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我无法将我的文件复制到docker容器?

为什么我无法将我的文件复制到docker容器?
EN

Stack Overflow用户
提问于 2017-07-30 23:56:33
回答 2查看 10K关注 0票数 7

我正在尝试将我的文件移动到apache镜像的htdocs文件夹中。这是我的dockerfile的样子:

代码语言:javascript
复制
FROM httpd:2.4
MAINTAINER Ankit
COPY ./public-html/ /usr/local/apache2/htdocs/

但是COPY命令不会将文件复制到容器中。下面是默认情况下的输出- index.html文件夹,我尝试复制的是public-html文件夹:

代码语言:javascript
复制
root@8453b6ffa6fd:/usr/local/apache2/htdocs# ls
index.html

我是不是漏掉了什么?

更新:公共html文件夹没有被复制,但是文件index.html被复制到那里,出现这种行为的原因是什么?

UPDATE2:这是我最新的dockerfile,用于构建和运行容器的命令。

代码语言:javascript
复制
Dockerfile:
FROM httpd:2.4
MAINTAINER Ankit
COPY public-html/ /usr/local/apache2/htdocs/public-html/

docker build -f Dockerfile -t apache .
docker run -d --name apws -v /Users/ankitsahu/workspace/docker_practi
ce/public-html:/usr/local/apache2/htdocs/ -p 80:80 apache

当我使用exec命令检查内容时:

代码语言:javascript
复制
root@b54e53a231b7:/usr/local/apache2/htdocs# ls -a
.  ..  index.html  sample.html  try
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-31 01:08:48

如果您尝试将目录public-html复制到/usr/local/apache2/htdocs目录中以创建.../htdocs/public-html/目录,请使用以下命令:

代码语言:javascript
复制
COPY public-html/ /usr/local/apache2/htdocs/public-html/

默认情况下,复制目录将复制该目录的内容,因此您需要在目标中对其进行命名,才能显示该目录。

编辑:您的run命令包含一个卷,该卷将替换此目录的映像内容:

代码语言:javascript
复制
docker run -d --name apws -v /Users/ankitsahu/workspace/docker_practice/public-html:/usr/local/apache2/htdocs/ -p 80:80 apache

如果您想要查看图像内部的内容,请不要使用卷:

代码语言:javascript
复制
docker run -d --name apws -p 80:80 apache

如果您想要使用该卷,请在docker主机上修改/Users/ankitsahu/workspace/docker_practice/public-html的内容。

票数 5
EN

Stack Overflow用户

发布于 2017-07-31 00:01:40

在您可以将文件COPY到根目录之外的其他目录之前,您必须创建它们。

将Dockerfile更新为以下内容

代码语言:javascript
复制
FROM httpd:2.4 MAINTAINER Ankit 
MKDIR -p /usr/local/apache2/htdocs/ # Create the directory with '-p' option. 
COPY ./public-html/ /usr/local/apache2/htdocs/

编辑1

根据文档Docker CP Command,如果

DEST_PATH存在并且是一个目录,并且如果

SRC_PATH不会以/结尾。(即:斜杠后跟圆点)将源目录复制到此目录

SRC_PATH确实以/结尾。(即:斜杠后跟圆点)将源目录的内容复制到此目录

在本例中,/public-html/以斜杠结尾,因此必须只复制内容。将其更新到./public-html应该可以解决此问题。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45401786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档