发布时间:2020-04-21 16:11:03来源:阅读:
我们知道在容器内做试验完成时,容器可以设置自动清除,这就省了好多事。不过仍然有一些不方便的地方。其中一个是我们可能需要在容器中多次执行一个相同的命令,而bash历史又没有了,只能手打。
你想与容器共享你的主机bash历史记录。
为docker run命令设置一个别名来与主机共享bash历史记录。
要理解这个问题,我们来展示一个场景。
假设你在Docker容器做试验,比如做一些有趣的和可重复使用的东西。这里我们使用echo命令,但这可能是一个长且复杂的一连串程序:
$ docker run -ti --rm ubuntu /bin/bash $ echo my amazing command $ exit
过了一些时间,你想重新执行之间执行过的复杂的echo命令。不过,你不记得命令了,而且终端会话也找不到这个命令,你尝试找bash历史记录,但没有任何输出:
$ history | grep amazing
为了解决这个问题,我们可以在你运行docker镜像时挂载一个volume,如下:
$ docker run -e HIST_FILE=/root/.bash_history -v=$HOME/.bash_history:/root/.bash_history -ti ubuntu /bin/bash
命令太长太难记了,我们把它设置为一个别名吧,在~/.bashrc文件中添加:
$ alias dockbash='docker run -e HIST_FILE=/root/.bash_history -v=$HOME/.bash_history:/root/.bash_history
这个体验仍然不好,因为当你要执行docker run命令时都要记住执行dockerbash命令。要获得更加无缝的体验,你您可以将这些添加到〜/ .bashrc文件:
function basher() { if [[ $1 = 'run' ]] then shift /usr/bin/docker run -e HIST_FILE=/root/.bash_history -v $HOME/.bash_history:/root/.bash_history "$@" else /usr/bin/docker "$@" fi }alias docker=basher
现在当你打开bash shel并执行任意的docker run命令时都会自动把bash历史记录的设置添加到命令中去。
2020-05-07
ubuntu 安装MongoDB
如何锁定Windows 7注册表编辑器
预装Win8/Win8.1/Win10的lenovo笔记本如何使用一键恢复
Virtualbox的centos7 nat和桥接网络配置
如何设置电池充电阈值
WARNING: Unable to find a corresponding IP address for xxx
USB设备无法使用
驱动和软件下载列表 ThinkPad A22e (Software and Device Drivers )
宽带网上网经常掉线