服务器之家

服务器之家 > 正文

Docker如何进入启动容器

时间:2021-02-01 17:24     来源/作者:AdaFanmm

本文介绍了Docker如何进入启动容器,分享给大家,具体如下:

在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。

这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。

1、attach命令

attach命令是Docker自带的命令,命令格式为:

docker attach [–detach-keys[=[]]] [–no-stdin] [–sig-proxy[=true]] Container

支持三个主要选项:

·–detach-keys[=[]]:指定退出attach模式的快捷键序列,默认是CTRL-p CTRL-q;

·–no-stdin=true|false:是否关闭标准输入,默认是保持打开;

·–sig-proxy=true|false:是否代理收到的系统信号给应用进程,默认为true。

但是,使用attach命令有时候并不方便。当多个窗口同时使用attach命令连到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。

2、exec命令

Docker从1.3.0版本起提供了一个更加方便的exec命令,可以在容器内直接执行任意命令。该命令的基本格式为:

docker exec [-d|–detach] [–detach-keys[=[]]] [-i|–interactive] [–privileged] [-t|–tty] [-u|–user[=USER]] CONTAINER COMMAND [ARG…]。

比较重要的参数有:

·-i,–interactive=true|false:打开标准输入接受用户输入命令,默认为false;

·–privileged=true|false:是否给执行命令以高权限,默认为false;

·-t,–tty=true|false:分配伪终端,默认为false;

·-u,–user=”“:执行命令的用户名或ID。

例如进入到刚创建的容器中,并启动一个bash:

Docker如何进入启动容器

可以看到,一个bash终端打开了,在不影响容器内其他应用的前提下,用户可以很容易与容器进行交互。
通过指定-it参数来保持标准输入打开,并且分配一个伪终端。通过exec命令对容器执行操作是最为推荐的方式。

3、nsenter 工具

在util-Linux软件包版本2.23+中包含nsenter工具。如果系统中的util-linux包没有该命令,可以按照下面的方法从源码安装:

?
1
2
3
$ cd /tmp; curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24;
$ ./configure --without-ncurses
$ make nsenter && cp nsenter /usr/local/bin

为了使用nsenter连接到容器,还需要找到容器进程的PID,可以通过下面的命令获取:

?
1
PID=$(docker inspect --format "{{ .State.Pid }}" )

通过这个PID,就可以连接到这个容器:

?
1
$ nsenter --target $PID --mount --uts --ipc --net --pid

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/u011641865/article/details/72472215

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
返回顶部