一直在寻找一个基于terminal的tui工具,今天总算找到了。


先来看看效果:

右边常开一个小窗口(iterm2快捷键:⌘+D),用来管理docker,这样就再也不用切换端口,也不需要频繁运行docker指令了。这在服务器上更加方便,尤其是和tmux、iterm2结合起来的时候。

安装go环境

如果你已经安装好了,请直接跳过~

MacOS系统

修改你的sh配置文件,如果你使用的系统自带的(bash),就是

~/.bashrc
复制代码

如果使用的是zsh,那么就是

~/.zshrc
复制代码

添加以下内容到该文件:

export GOPATH="${HOME}/go"
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"
复制代码

啰嗦一点,解释一下:

  • export GOPATH="${HOME}/go"

GOPATH可以看着是你本地的go开发路径,可以随意选择一个适合自己的。

  • export GOROOT="$(brew --prefix golang)/libexec"

GOROOT是安装的go可执行文件所在的目录,这里我们使用brew来安装,所以就设置为"$(brew --prefix golang)/libexec",也就是

/usr/local/Cellar/go/1.11.4/libexec
复制代码
  • PATH="{GOPATH}/bin:${GOROOT}/bin"

将GOPATH和GOROOT的bin子目录添加到你的环境变量PATH,不然之后会遇到"命令找不到"这种错误。

还有非常重要的一点:别忘了使上述修改生效。

soucre ~/.bashrc
复制代码

或者

source ~/.zshrc
复制代码

手动创建你的GOPATH目录:

test -d "${GOPATH}" || mkdir "${GOPATH}"
复制代码

使用brew安装go:

brew install go
复制代码

安装docui

只需要通过一条go命令获取源代码就行:

go get -d github.com/skanehira/docui
复制代码

这会将docui的源码安装到你这个目录:

$GOPATH/github.com/skanehira/docui
复制代码

如果你在安装的过程中遇到了下面的问题:

package golang.org/x/sys/unix: unrecognized import path "golang.org/x/sys/unix" (https fetch: Get https://golang.org/x/sys/unix?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
package golang.org/x/crypto/ssh/terminal: unrecognized import path "golang.org/x/crypto/ssh/terminal" (https fetch: Get https://golang.org/x/crypto/ssh/terminal?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
复制代码
mkdir -p $GOPATH/src/golang.org/x/
cd !$
git clone https://github.com/golang/sys.git
git clone https://github.com/golang/text.git
复制代码

最后切换到$GOPATH/github.com/skanehira/docui目录下面,执行

go install
复制代码

使用docui

输入docui进入tui交互环境,输入q即可退出。除了可以查看镜像列表、容器列表、volume列表、network列表外,还有几项比较实用的操作:

进入某个特定的容器

对准container list的某个容器,按下ctrl+c,输入bash,然后按选中Exec

搜索镜像

在image list这个panel,按crtl+f进行搜索



创建容器

在image list这个panel,按c