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

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

发布网友 发布时间:2022-02-26 21:29

我来回答

2个回答

热心网友 时间:2022-02-26 22:58

打开多个终端进入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 00:16

用 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 等等
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 如何 进入docker容器 镜像目录 如何进入到Docker容器内部 怎么看docker 是否安装好了 mac安装docker 还是虚拟机 韩国购物网代购一般在哪个网站买? 为什么ubuntu16.04一直没法成功安装docker 海外代购一般是去哪个网站? 如何在docker中安装ubuntu系统 本人想在国内想东西,不知道哪个代购网比较好,大家一般都是什么代购网站? 阿里云服务器 能安装docker么 如何在docker中运行windows 网上代购一般都去哪个网站呢? yum安装docker、docker-engine、docker-ce的区别 如何安装一个新的应用 windows docker 请问一下谁有docker视频教程 可以分享一下不? 如何在ubuntu14.04上安装docker并运行image 怎么看快手小店一共消费了多少钱 win7系统怎么安装docker 如何在Ubuntu系统下安装docker 如何安装最新版docker docker进入容器 之后怎么退出 台式电脑无线投屏到电视,并分屏 如何进入Docker容器 docker进入容器之后如何退出呢? 如何启动一个已经创建的docker容器,并进入SHELL对其操作 docker 怎么启动容器的所有 docker下容器怎么执行命令? 在excel中如何自动求和,如何隔行求和,请教高手,谢谢 请教高手,如何在EXCEL中自动换行求和, 如何制作docker镜像 如何制作自己的docker镜像 如何构建docker镜像 如何把微信上的兔斯基表情包保存到本地? 怎么制作docker镜像 有多大 怎么制作docker镜像并上传 微信7.0.12怎么把表情保存到本地相册? 如何制作docker nginx镜像 如何制作nfs docker 镜像 如何将应用打包成为 Docker 镜像 如何建立你自己的Docker镜像