进入 docker 容器命令制作

  1. 通过 attach 进入容器
  2. 制作进入容器的命令

通过 attach 进入容器

# 进入容器(Docker 自带的命令)
$ sudo docker attach [name]

通过这命令进入容器后,执行 ctrl+d 退出容器后发现容器也停止了。
所以可以通过

  • 先按,ctrl+p
  • 再按,ctrl+q

退出

制作进入容器的命令

既然 attach 退出很麻烦,一不小心容器就 down 掉了

通过 docker exec 进入容器是安全的,但是命令过长

所以我们可以通过下面操作,简化命令

  1. 创建文件 /usr/bin/ctn, 内容如下

    docker exec -it $1 /bin/bash
  2. 检查环境变量有没有配置目录 /usr/bin

    $PATH
    bash: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games: No such file or directory

    配置环境变量的方式自行百度

  3. 完成上面两步即可通过命令 ctn 进入容器

    $ ctn [name]

    注意:如果是使用非 root 账号创建的命令,而 docker 命令是 root 权限,可能会存在权限问题
    可以设置 chmod 777 /usr/bin/ctn 设置权限
    使用 sudo ctn [name] 即可进入容器

  4. 自动补全 docker 名
    使用上面命令时,docker 的名字都是手动输入,很麻烦,而且容易出错。

我们可以借助 complete 命令,来补全 docker 信息。

在~/.bashrc (作用于当前用户,如果所有用户,修改 /etc/bashrc) 文件中添加一行

# ctn auto complete
complete -W "$(docker ps --format"{{.Names}}")" ctn

再执行 source .bashrc 使之生效。

这样我们输入 ctn 后,按 Tab 就会提示或自动补全了。

注意: 由于提示的 docker 名是 .bashrc 生效时的列表,所以如果之后 docker 列表有变动,需重新执行 source .bashrc 使之更新提示列表


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏