如何在ubuntu14.04上从localhost将目录或文件复制到docker镜像?

lig*_*-li 11 docker

当我通过Dockerfile将文件或目录添加到docker镜像时,我使用ADD或COPY,但我想要添加或复制的文件路径必须是Dockerfile目录的相对路径.是否有使用绝对路径将文件或目录从localhost添加到docker镜像的方法?顺便说一句,为什么"docker cp"只能支持将文件从docker镜像复制到localhost?相反,它不起作用?

was*_*ren 13

简短的回答是它不受支持.

来自Docker文档:

<src>路径必须位于构建的上下文中; 你不能添加../something/something,因为docker构建的第一步是将上下文目录(和子目录)发送到docker守护进程.

此外,不支持符号链接,因此无法通过链接到localhost上的其他位置来欺骗构建.

但是,URL是受支持的,因此解决问题的一种方法是,如果在localhost(或docker容器)中启用Web服务器,则通过HTTP提供文件.

该命令docker cp(不幸的是)仅支持从容器到主机,反之亦然.这在文档中描述.解决这个问题的方法是使用可以共享数据的docker卷.

  • [`docker cp`](https://docs.docker.com/engine/reference/commandline/cp/)现在可以向任一方向复制文件. (2认同)