有没有一种便捷的方法可以找出容器构建后在 docker 容器内进行的所有安装和更改?因为不建议将更改提交到新镜像,所以我如何轻松找到所有更改,以便将它们放入 Dockerfile 中?
最佳答案
获取有用信息的方法有多种。
要获取容器的日志,请使用docker log命令,语法为:
# 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 for apt-get
。
# docker logs test | grep apt-get
如果要将日志保存到 docker 主机上的文件中,请使用:
# docker logs test > test_logs
您还可以利用容器的 bash 历史记录来获取有关您所做操作的一些信息:
# docker exec container cat /root/.bash_history
docker diff
命令通常用于检查容器文件系统上的文件或目录的更改。它不会提供您执行的确切命令,而是提供修改后的文件。
关于Docker 在容器内构建后安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538816/