我有一个已经运行的docker容器。我做了一些配置更改,让我们说在容器内的/ etc / hosts中添加了一些主机信息。如何保存更改,以便下次当我打开交互式shell到容器时,我不必再做同样的事情了?现在我已经在容器内创建了一个迷你脚本addhosts.sh,如下所示。每次都要运行它。
echo "1.2.3.4 server1.example.com gluster1" >> /etc/hosts
echo "5.6.7.8 server2.example.com gluster2" >> /etc/hosts
这是其中一个案例。同样,我需要所有配置都完好无损。请不要建议使用dockerfile,因为我没有创建图像,而只是进入容器。
答案 0 :(得分:8)
您可以提交您所做的更改:
短命令参考:
docker commit <container id or name> <repository name>/<your image name>:<tage aka version>
示例:
docker commit c3f279d17e0a svendowideit/testimage:version3
完整参考:
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
Options:
-a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
-c, --change value Apply Dockerfile instruction to the created image (default [])
--help Print usage
-m, --message string Commit message
-p, --pause Pause container during commit (default true)
然后,您可以使用docker images
在提交后查看新图像。
从新图片中运行容器:
docker run -d svendowideit/testimage:version3 <optional startup command>
另一种方法是通过以下方式创建自己的图片:dockerfile
,我只是把它放在这里,只是因为我们可以帮助别人。
答案 1 :(得分:4)
假设您不希望将更改保存到新图像中:
docker exec -it container_id echo "1.2.3.4 server1.example.com gluster1" >> /etc/hosts
docker exec -it container_id echo "5.6.7.8 server2.example.com gluster2" >> /etc/hosts
这将连接到容器,运行命令并退出而不会杀死容器。
请注意以下内容之间的区别:
docker exec -it container_id ... = does not kill the container.
docker run -it container_id ...= kills the container
答案 2 :(得分:2)
使用docker commit
拍摄容器的快照。
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Create a new image from a container's changes
Options:
-a, --author string Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
-c, --change value Apply Dockerfile instruction to the created image (default [])
--help Print usage
-m, --message string Commit message
-p, --pause Pause container during commit (default true)
Example: docker commit c3f279d17e0a svendowideit/testimage:version3
请查看https://docs.docker.com/engine/reference/commandline/commit/
要停靠Docker容器的运行快照,请添加要运行的版本命令。至于示例运行
docker run svendowideit/testimage:version3