Docker 在容器内构建后安装

标签 docker docker-compose ubuntu-16.04

有没有一种便捷的方法可以找出容器构建后在 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/

相关文章:

docker - 为什么 docker login 命令会在我的计算机上保存未加密的密码?

ruby - 在 ubuntu 16.04 上安装 fpm 时出错

docker - 通过php-fpm容器中的Nginx容器文件服务?

docker - 启动容器 Jenkins 后,权限被拒绝

node.js - Docker 主机名未在 next.js prod 中解析但在开发模式下工作(错误 : getaddrinfo ENOTFOUND)

datetime - LibreOffice Calc 日期时间快捷方式插入

mysql - 如何在Ubuntu 16.04中启动MySql服务时在MySQL的固定数据库中运行MySQL查询?

docker - Kubernetes是否在主节点和节点中支持不同的Docker版本?

plugins - Docker插件可以检查起始镜像中的标签元数据吗?

docker - 如何在 Dockerfile 中设置 Node 环境变量以运行 node.js 应用程序?