我正在测试以查看我的提交更改是否对我的容器有效。因此,我创建了一个仅包含文本的测试文件,然后将其提交,然后将其推送到我的存储库(标记为最新)。每当我通过docker重新下载时,请提取myrepository名称。它不再包含我作为测试创建的文本文件。

我该如何操作它,以便在我提交,推入和拉回后,在容器中实际进行的更改将保留在那里?

docker pull twsee/atsci405
docker run -it twsee/atsci405 /bin/bash

在/ bin / bash /的主目录中创建文件

退出容器
docker commit 6e667bab0bb967656e81d343d33ffe7dfae35afb868b137ea425e5dbe3533b0c twsee/atsci405:latest
docker push twsee/atsci405:latest

忽略未匹配的容器ID

最佳答案

我认为您的流程没有任何问题。我在上面看到一条评论,说您需要提交一个“正在运行的”容器。那是不对的。请参阅以下内容:

$ docker run -it alpine:3.3 sh
# touch testfile
# ls
bin     home   ... testfile ...
# exit
$ docker commit $(docker ps -aql) johnharris85/test-commit:latest
$ docker push johnharris85/test-commit:latest
$ docker rmi johnharris85/test-commit:latest
$ docker run -it johnharris85/test-commit:latest sh
# ls
bin     home   ... testfile ...

您看到不同的结果吗?您可以发布父镜像Dockerfile吗?音量可能有问题吗?

关于docker - 为什么我的docker容器不保存我合并到其中的文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40313082/

10-16 23:54