我正在尝试为我们使用的Docker容器构建备份和还原解决方案.
我有我创建的Docker基本映像ubuntu:base,并且不希望每次都使用Docker文件重建它以向其添加文件.
我想创建一个从主机运行的脚本,并使用ubuntu:baseDocker镜像创建一个新容器,然后将文件复制到该容器中.
如何将文件从主机复制到容器?
我的问题与将文件从容器复制到主机的问题有关; 我有一个Dockerfile,它可以获取依赖项,从源代码编译构建工件,并运行可执行文件.我也想复制构建工件(在我的情况下,它是.zip由sbt dist'../ target /`生成的,但我认为这个问题也适用于jar,二进制文件等.
docker cp适用于容器,而不是图像; 我是否需要启动容器才能获取文件?在脚本中,我尝试/bin/bash在后台以交互模式运行,将文件复制出来,然后杀死容器,但这看起来很糟糕.有没有更好的办法?
另一方面,我想避免.tar在运行之后解压缩文件docker save $IMAGENAME以获取一个文件(但这似乎是最简单的,如果最慢的选项).
我会使用docker卷,例如:
docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out
Run Code Online (Sandbox Code Playgroud)
但是我boot2docker在OSX中运行而且我不知道如何直接写入我的mac主机文件系统(读写卷正在我的boot2docker VM中安装,这意味着我无法轻松共享脚本以blah.zip从图像中提取其他人.想法?
您能否提供一个使用volumes_from容器A到容器B 共享路径的示例,以及容器B在共享完成后如何访问此路径.
谢谢
我想在dockerfile成功构建时获取一些文件,但它不会将文件从容器复制到主机.
这意味着当我构建dockerfile时,文件已经是主机.
我有一个运行良好的 docker 容器。它会在目录中生成一些文件/Project/userfiles.txt。我需要这些文件用于某些测试目的。但是当这个容器停止时,一切都被删除了。所以我需要将此文件从容器复制到主机。
我在生成文件的容器中运行了一个 python 应用程序。我想要一些命令或任何方式,userfiles.txt当容器停止时,我可以在最后将其发送到主机。
为此,我可以使用docker cp命令并尝试过,但由于docker not found未安装 docker,它给了我一个错误。
如何从容器到主机共享文件?
我正在写一个Dockerfile构建应用程序.我知道您可以手动将文件从容器中复制出来
docker cp <containerId>:/file/path/within/container /host/path/target
Run Code Online (Sandbox Code Playgroud)
(请参阅将文件从Docker容器复制到主机),但我想运行
docker build
Run Code Online (Sandbox Code Playgroud)
并让它将我的Dockerfile某个地方创建的构建工件转储到我的主机文件系统上.
我可以在Dockerfile中使用一个命令来复制出容器并进入主机吗?喜欢相反的COPY?
我正在尝试将整个目录从我的docker映像复制到本地计算机.
图像是一个keycloak图像,我想复制主题文件夹,以便我可以处理自定义主题.
我正在运行以下命令 -
docker cp 143v73628670f:keycloak/themes ~/Development/Code/Git/keycloak-recognition-login-branding
Run Code Online (Sandbox Code Playgroud)
但是我收到以下回复 -
Error response from daemon: Could not find the file keycloak/themes in container 143v73628670f
Run Code Online (Sandbox Code Playgroud)
当我使用 - 连接到我的容器时 -
docker exec -t -i 143v73628670f /bin/bash
Run Code Online (Sandbox Code Playgroud)
我可以使用 - 导航到主题 -
cd keycloak/themes/
Run Code Online (Sandbox Code Playgroud)
我可以看到它位于那里,文件在终端中是预期的.
我在Mac上本地运行实例.
如何将整个主题文件夹复制到本地计算机?我做错了什么?
有没有其他方法可以docker通过在容器中运行命令来将文件或文件夹从容器复制到主机?
我阅读的所有其他问题都建议docker cp在主机上运行命令。
好吧,基本上我想从我的主机到我的容器创建一个符号链接"ln -s".
总结一下:主机的主机文件夹.m2必须有一个指向我容器内的.m2文件夹的符号链接,例如:$ ln -s containerIp:/root/.m2 myContainerAlias
我已经看过下面的帖子,但他们没有帮助我,因为我不想将文件复制到我的本地主机.
https://omarabid.com/symlink-to-a-mounted-volume-in-docker/
编辑:
我在这里找到了另一个有价值的问题:
如何将docker容器中的目录挂载到主机? 谢谢...
我知道,有一种方法可以使用在主机和docker容器之间双向复制文件docker cp,也可以使用docker-py从运行的容器中获取文件。但是我无法弄清楚如何(或什至有可能)使用docker-py将文件从主机复制到正在运行的容器。你们有处理此类问题的经验吗?是否可以做,或者我必须使用python执行命令os.system。我想避免这种解决方案。
docker ×10
boot2docker ×1
containers ×1
docker-copy ×1
dockerfile ×1
dockerpy ×1
keycloak ×1
linux ×1
python ×1
symlink ×1