我正在尝试为我们使用的Docker容器构建一个备份和恢复解决方案。

我有一个我创建的Docker基础镜像ubuntu:base,不想每次都用Docker文件重新构建它来添加文件。

我想创建一个从主机运行的脚本,并使用ubuntu:base Docker映像创建一个新容器,然后将文件复制到该容器中。

如何将文件从主机复制到容器?


当前回答

以下是一种相当丑陋的方法,但它确实有效。

docker run -i ubuntu /bin/bash -c 'cat > file' < file

其他回答

您可以使用

ifconfig

然后只需输入Docker容器并键入

scp user_name@ip_address:/path_to_the_file destination

在任何情况下,如果您没有安装SSH客户端和服务器,只需使用以下方法进行安装:

sudo apt-get install openssh-server

真正的交易是:

docker volume create xdata
docker volume inspect xdata

所以你可以看到它的装载点。把你的东西复制到那里然后

docker run  --name=example1 --mount source=xdata,destination=/xdata -it yessa bash

其中yessa是图像名称

您可以使用以下命令

将文件从主机复制到docker容器docker cp/主机文件container_id:/to_the_place_you_want_the_file_to_be将文件从docker容器复制到主机docker cp container_id:src_path to_the_place_you_want_the_file_to_be

有一件事我试过了

启动docker容器后,如果在该容器下创建任何文件;您可以从docker主机的以下位置轻松访问该文件:-

cd/var/lib/dodocker/aufs/container/container_id/tmp

再试一次!

实现这一点的最简单的方法是,

查找容器iddocker cp<文件名><容器id>:<路径>