Docker:保留命令历史记录

use*_*816 5 ubuntu docker

每次构建 Docker 容器时,命令历史记录(在 Ubuntu 中为CTRL+ R)都会丢失。有没有办法防止它在每次构建后重置历史记录?

Yua*_*kun 2

是的,有办法。尽管这有点棘手。

基本上,当容器被删除时,它的整个文件系统都会被擦除。所以你需要找到一些方法来保存命令历史文件。

首先,在容器中找到shell使用的历史文件。对我来说,我正在运行一个 busybox 容器。我发现历史文件是/root/ash_history.

$ ls -a /root
.             ..            .ash_history
Run Code Online (Sandbox Code Playgroud)

然后,删除当前正在运行的容器并在安装主机文件的情况下重新运行它(以便我们可以保留该/root/.ash_history文件)。

docker run -v /path/to/host/file:/root/.ash_history ...
Run Code Online (Sandbox Code Playgroud)

输入一些随机命令,然后删除容器并再次运行,就可以在容器中使用CTRL+了。R