如果没有shell,我如何从运行官方etcd图像的docker容器中获取文件?

时间:2016-10-06 15:45:06

标签: docker etcd

我有一个由CoreOS运行etcd docker镜像的docker容器,可在此处找到:https://quay.io/repository/coreos/etcd。我想要做的是复制本地数据目录中保存的所有文件。我尝试使用docker exec -it etcd /bin/sh连接到容器,但似乎没有shell(/bin/bash/bin/sh),或者至少在$PATH上找不到它{1}}变量。我怎样才能进入图像或获取本地复制的etcd中的所有数据文件?

2 个答案:

答案 0 :(得分:1)

您可以轻松导出图像内容:

docker export <CONTAINER ID> > /some_file.tar

理想情况下,您应该使用卷,以便将所有数据存储在容器外部。然后,您可以像访问任何其他文件一样访问这些文件。

答案 1 :(得分:0)

Docker具有cp命令,用于在容器和主机之间复制文件:

docker cp <id>:/container/source /host/destination

您在源中指定容器ID或名称,您可以将命令轮翻转以从主机复制到容器中:

docker cp /host/source <id>:/container/destination