【原创】docker进入容器和退出容器的不同方法

进入docker容器的方法多种,如下:

1. 使用ssh登陆进容器 
2. 使用nsenter、nsinit等第三方工具 
3. 使用Docker本身提供的工具

但是上面的方法存在一定的问题如下:

方法1需要在容器中启动sshd,存在开销和攻击面增大的问题。同时也违反了Docker所倡导的一个容器一个进程的原则。 
方法2需要额外学习使用第三方工具。 
所以大多数情况最好还是使用Docker原生方法,Docker目前主要提供了Docker exec和Docker attach两个命令。(个人强烈建议使用docker原生方法、可以帮助理解docker的容器本质和保证docker的安全

attach 用法

$ sudo docker attach 665b4a1e17b6 #通过容器id
或者
$ sudo docker attach loving_heisenberg #通过容器名称

就是讲你当前terminal 的标准输入、输出、错误附加到制定的docker容器。
通俗来讲就是 当前终端里可以看到 ENTRYPOINT/CMD 进程的输出,你发送 CTRL-c 信号(输入exit;也是同理) 直接会终止docker 运行。
如果 ENTRYPOINT/CMD 没有标准输出,那么attach 上去了,什么也没有,就好像假死了。

所以维持容器运行情况退出的命令为ctrl + P + Q 

exec 用法

$ sudo docker exec -i -t 665b4a1e17b6 /bin/bash #通过容器id
或者

$ sudo docker exec -i -t loving_heisenberg /bin/bash #通过容器名称

在docker 里面新开了一个bash 进程,在该终端可以通过命令和容器交互,类似于通过ssh和远程linux server 交互。

所以大多数情况,可以直接使用 docker exec 命令。

退出命令是ctrl + P + Q 也可以使用命令行“exit;”退出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值