有没有一种方便的方法可以找到容器生成后在docker容器内进行的所有安装和更改?因为不建议将更改提交到新映像,所以我如何才能轻松找到所有更改,以便将它们放入Dockerfile?

答案 0 :(得分:1)
有多种方法可以获得有用的信息。
要获取容器的日志,请使用docker logs命令,语法为:
# docker logs [OPTIONS] CONTAINER
有关可用选项的完整列表,请运行:
# docker logs --help
您还可以将命令的输出传递给grep
等工具以过滤输出。见下面的例子。
# docker run -it --rm --name test ubuntu:16.04 /bin/bash
root@fde8369a7439:/# apt-get update
root@fde8369a7439:/# apt-get install nginx
root@fde8369a7439:/# apt-get install vim
现在检查日志,grep apt-get
。
# docker logs test | grep apt-get
如果要将日志保存到docker主机上的文件,请使用:
# docker logs test > test_logs
您还可以利用容器的bash历史来提取有关您所做的事情的信息:
# docker exec container cat /root/.bash_history
docker diff
命令通常用于检查容器文件系统上文件或目录的更改。它不会为您提供执行但已修改文件的确切命令。
答案 1 :(得分:0)
docker container diff
就是您所需要的:https://docs.docker.com/engine/reference/commandline/container_diff/