问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何打开多个终端进入Docker容器

发布网友 发布时间:2022-02-26 22:37

我来回答

3个回答

热心网友 时间:2022-02-27 00:06

Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH。如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可。当我启动了五个容器后,每个容器默认是没有配置SSH Server的,安装配置SSHD,映射容器SSH端口,实在是麻烦。 我发现很多Docker镜像都是没有安装SSHD服务的,难道有其他方法进入Docker容器?
有很多种方法,包括使用 docker attach 命令或 nsenter 工具等。
使用 attach 命令有时候并不方便。当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示。
nsenter 可以访问另一个进程的名字空间。
为了连接到容器,你还需要找到容器的第一个进程的 PID,可以通过下面的命令获取。
PID=$(docker inspect –format “{{ .State.Pid }}” <container>) //将<container>换成你的容器id
通过这个 PID,就可以连接到这个容器:
$ nsenter –target $PID –mount –uts –ipc –net –pid
更简单的,建议大家下载 .bashrc_docker,并将内容放到 .bashrc 中。
$ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;
$ echo “[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker” >> ~/.bashrc; source ~/.bashrc
这个文件中定义了很多方便使用 Docker 的命令,例如 docker-pid 可以获取某个容器的 PID;而 docker-enter 可以进入容器或直接在容器内执行命令。
$ echo $(docker-pid <container>)
$ docker-enter <container>
附.bashrc_docker文件内容:
# Some useful commands to use docker.
# Author: yeasy@github
# Created:2014-09-25
alias docker-pid=”sudo docker inspect –format ‘{{.State.Pid}}’”
alias docker-ip=”sudo docker inspect –format ‘{{ .NetworkSettings.IPAddress }}’”
#the implementation refs from https://github.com/jpetazzo/nsenter/blob/master/docker-enter
function docker-enter() {
if [ -e $(dirname "$0")/nsenter ]; then
# with boot2docker, nsenter is not in the PATH but it is in the same folder
NSENTER=$(dirname “$0″)/nsenter
else
NSENTER=nsenter
fi
[ -z "$NSENTER" ] && echo “WARN Cannot find nsenter” && return
if [ -z "$1" ]; then
echo “Usage: `basename “$0″` CONTAINER [COMMAND [ARG]…]”
echo “”
echo “Enters the Docker CONTAINER and executes the specified COMMAND.”
echo “If COMMAND is not specified, runs an interactive shell in CONTAINER.”
else
PID=$(sudo docker inspect –format “{{.State.Pid}}” “$1″)
if [ -z "$PID" ]; then
echo “WARN Cannot find the given container”
return
fi
shift
OPTS=”–target $PID –mount –uts –ipc –net –pid”
if [ -z "$1" ]; then
# No command given.
# Use su to clear all host environment variables except for TERM,
# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
# and start a login shell.
#sudo $NSENTER “$OPTS” su – root
sudo $NSENTER –target $PID –mount –uts –ipc –net –pid su – root
else
# Use env to clear all host environment variables.
sudo $NSENTER –target $PID –mount –uts –ipc –net –pid env -i $@
fi
fi
}

热心网友 时间:2022-02-27 01:24

打开多个终端进入Docker容器有很多种方法,包括使用 docker attach 命令或 nsenter 工具等。

使用 attach 命令有时候并不方便。当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示。

nsenter 可以访问另一个进程的名字空间。

为了连接到容器,你还需要找到容器的第一个进程的 PID,可以通过下面的命令获取。

PID=$(docker inspect –format “{{ .State.Pid }}” <container>) //将<container>换成你的容器id

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

$ nsenter –target $PID –mount –uts –ipc –net –pid

更简单的,建议大家下载 .bashrc_docker,并将内容放到 .bashrc 中。

$ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;

$ echo “[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker” >> ~/.bashrc; source ~/.bashrc

这个文件中定义了很多方便使用 Docker 的命令,例如 docker-pid 可以获取某个容器的 PID;而 docker-enter 可以进入容器或直接在容器内执行命令。

$ echo $(docker-pid <container>)

$ docker-enter <container>

附.bashrc_docker文件内容:

# Some useful commands to use docker.

# Author: yeasy@github

# Created:2014-09-25

alias docker-pid=”sudo docker inspect –format ‘{{.State.Pid}}’”

alias docker-ip=”sudo docker inspect –format ‘{{ .NetworkSettings.IPAddress }}’”

#the implementation refs from https://github.com/jpetazzo/nsenter/blob/master/docker-enter

function docker-enter() {

if [ -e $(dirname "$0")/nsenter ]; then

# with boot2docker, nsenter is not in the PATH but it is in the same folder

NSENTER=$(dirname “$0″)/nsenter

else

NSENTER=nsenter

fi

[ -z "$NSENTER" ] && echo “WARN Cannot find nsenter” && return

if [ -z "$1" ]; then

echo “Usage: `basename “$0″` CONTAINER [COMMAND [ARG]…]”

echo “”

echo “Enters the Docker CONTAINER and executes the specified COMMAND.”

echo “If COMMAND is not specified, runs an interactive shell in CONTAINER.”

else

PID=$(sudo docker inspect –format “{{.State.Pid}}” “$1″)

if [ -z "$PID" ]; then

echo “WARN Cannot find the given container”

return

fi

shift

OPTS=”–target $PID –mount –uts –ipc –net –pid”

if [ -z "$1" ]; then

# No command given.

# Use su to clear all host environment variables except for TERM,

# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,

# and start a login shell.

#sudo $NSENTER “$OPTS” su – root

sudo $NSENTER –target $PID –mount –uts –ipc –net –pid su – root

else

# Use env to clear all host environment variables.

sudo $NSENTER –target $PID –mount –uts –ipc –net –pid env -i $@

fi

fi

}

热心网友 时间:2022-02-27 02:59

用 docker ps 找到你要进入的container的 id,然后用 docker exec 执行一个 bash

如:docker exec -it 40c330755e61 /bin/bash
这样你就进到这个container 里面了,这个bash退出也不会影响之前 docker run 启动的 bash
如果需要其他参数可以参考docker 手册 man docker-exec ,man docker-run 等等
如何打开多个终端进入Docker容器?

打开多个终端进入Docker容器有很多种方法,包括使用 docker attach 命令或 nsenter 工具等。使用 attach 命令有时候并不方便。当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示。nsenter 可以访问另一个进程的名字空间。为了连接到容器,你还需要找到容器的第一个进程的 PID,可以通过下面的...

如何进入docker容器目录

要访问Docker容器内部的目录,首先,打开终端,运行命令 执行`docker ps`,这将列出所有运行中的容器及其对应的ID。例如,你可能会看到一个容器ID为`b5f5b9c82259`。一旦你找到所需的容器ID,接下来的步骤是导航到该容器的目录。在命令行中,输入以下命令,将`b5f5b9c82259`替换为你的实际容器ID:she...

Linux下配置Docker容器间网络连接的教程

打开第二个终端。启动名称为client1的容器:代码如下:sudo docker run -itd --name=client1 client_img /bin/bash进容器里看一下:代码如下:sudo docker attach client1如果你看不见shell命令提示符,可以使用方向键的向上箭头。让我们来测试一下到server1的连通性:代码如下:curl 172.17.0.3如果一...

如何进入,退出docker的container

-t:进入终端 -i:获得一个交互式的连接,通过获取container的输入 /bin/bash:在container中启动一个bash shell 这样就进入container的内部了:root@af8bae53bdd3:/ 如果有运行中的container,可以在container所在的外部操作系统中运行:docker ps 查看到这个container。如果想看到所有的container,包括运行...

如何进入,退出docker的container

-t:进入终端 -i:获得一个交互式的连接,通过获取container的输入 /bin/bash:在container中启动一个bash shell 这样就进入container的内部了:root@af8bae53bdd3:/ 如果有运行中的container,可以在container所在的外部操作系统中运行:docker ps 查看到这个container。如果想看到所有的container,包括运行...

如何进入,退出docker的container

docker run:启动container ubuntu:你想要启动的image -t:进入终端 -i:获得一个交互式的连接,通过获取container的输入 /bin/bash:在container中启动一个bash shell 这样就进入container的内部了:root@af8bae53bdd3:/ 如果有运行中的container,可以在container所在的外部操作系统中运行:docker ps 查...

Docker 容器使用

如果我们本地没有 ubuntu 镜像,我们可以使用 docker pull 命令来载入 ubuntu 镜像:启动容器 以下命令使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:参数说明:要退出终端,直接输入exit:启动已停止运行的容器 查看所有的容器命令如下:点击图片查看大图:使用 docker start 启动一个已停止...

Docker容器通用教程

在Windows系统中,如果想要通过WSL和Ubuntu进行Docker容器操作,首先需要确保已经开启梯子。启动步骤如下:1. 在开始菜单中,右键点击并选择“终端(管理员)”。2. 在管理员权限下,输入命令 "wsl --install",系统将自动安装WSL和Ubuntu。如果出现提示 "Error code: Wsl/WININET_E_NAME_NOT_RESOLVED"...

Docker 常用命令——容器命令

启动与停止容器启动容器的命令通常为`docker run`,停止则有`docker stop`。这两个操作决定了容器的生命周期。容器进入与退出容器默认在后台运行,若需进行修改,可以使用`docker exec`进入容器开启新终端,或者`docker attach`连接容器当前终端。退出时,`exit`命令是你的选择。容器进程与日志管理容器内部...

docker中的exec和attach命令的区别?

如果Docker容器在启动时使用/bin/bash,attach命令就能直接访问容器内部的bash环境。然而,如果容器使用了不同的启动命令,attach将无法直接进入容器内部。此时,需要通过exec命令在容器内部创建bash实例。attach的主要功能是附着到已运行的容器,而不会在容器中创建新的进程执行额外的命令。它仅提供了一个直接...

当打开一个装有液态空气的容器盖 进入容器前首先进行 进入容器设备八个必须 密封的容器怎么打开 封闭的容器怎么打开 安全容器服务怎么打开 容器有负压怎么打开 无菌容器一经打开 打开无菌容器盖的方法
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
首都食品与医药职称评审能过吗? 助理工程师评定以后有所谓的发证机关、批准文号吗,可在哪里查询到?_百 ... 老人咽气时为什么孙子不能在场 为什么老人咽气时孙子不能在场? 为什么有的人说5D3配这个头很不好 EF 70-200mm f/4L USM 连着两天梦见10多年的情人死了是什么意思?都是零晨,昨天白天还告诉他了... 广州本田汽车有限公司厂址? 梦见自己家里死人了,没见尸体,哭的很厉害 早上心慌慌是怎么回事 ...我早上起来心慌慌的,心态急躁不安,脚,手感觉一点力都没有,这个时候... docker 怎么 重新开启状态为exited的容器 docker运行旧容器 如何让docker容器在执行shell命令后不退出运行 如何避免Docker容器启动脚本运行后自动退出 我的加的群怎么设置管理员 如何实现多个docker容器同时执行一条命令 西红柿土豆炖牛肉特别好吃,具体的做法是怎样的? 请问微信分身怎么登录? 番茄土豆炖牛腩做法 家常版番茄土豆炖牛腩怎么做好吃呢? 如何在电脑上同时登陆两个 番茄土豆炖牛腩,应该炖多久? 番茄土豆炖牛腩的做法有哪些? 如何同时登录微信分身 番茄土豆炖牛腩怎样制作才最好吃? 西红柿土豆炖牛肉的家常做法大全家常窍门 电脑怎样同时登录两个 西红柿土豆炖牛肉窍门 西红柿土豆炖牛腩窍门 微信如何两台电脑同时登录 怎么查找删除QQ的好友? win7怎么访问docker容器 如何在Docker容器中运行Apache服务器 怎么查看京东所绑定的(注:是从京东帐号查看微信,不是从微信查京东) 柚子是凉性还是热性水果 如何查询我的京东闪付卡号 华为手机黑屏打不开怎么办? 华为手机黑屏了,打不开,但是还能收到打电话的声音? 华为手机黑屏打不开怎么办 华为手机黑屏打不开怎么办?急求! 华为手机摔了,黑屏打不开怎么办 华为手机黑屏无法开机怎么办? 华为手机有电黑屏打不开怎么办 华为手机黑屏打不开咋办 手机开热点电脑连不上怎么办别的手机能连上 手机开热点电脑连接 为什么华为手机黑屏打不开? 如何用手机开热点连接电脑 华为nova2s突然黑屏打不开了怎么办? 华为mate7手机黑屏打不开怎么办