使用nsenter命令进入Docker容器

nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。一个最典型的用途就是进入容器的网络命令空间,本篇文章重点为大家讲解一下使用nsenter命令进入Docker容器具体方法。

创新互联建站服务项目包括浦口网站建设、浦口网站制作、浦口网页制作以及浦口网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,浦口网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到浦口省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

查看本机装没有nsenter

whereis nsenter或者whatis nsenter

未安装先安装,网上有很多这样的脚本

vi nsenter.sh
#!/bin/bash
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
sudo cp nsenter /usr/local/bin
cd .. && rm -rf util-linux-2.24
保存退出,执行脚本就可以安装nsenter。如果报错,注意看报错信息,我是安装gcc解决了这个问题,之后运用下面脚本进入容器。
vi docker_enter.sh
#!/bin/sh
# 文 档名: docker_enter.sh
# 版 本: 1.0.1
# 用 途: 使用nsenter工具进入Docker容器
# 用 法:. docker_enter 容器ID或bash -x docker_enter.sh 容器ID
# 正 文:如以下代码

if [ -e $(dirname "$0")/nsenter ]; then
NSENTER=$(dirname "$0")/nsenter
else
NSENTER=nsenter
fi
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=$(docker inspect --format "{{.State.Pid}}" "$1")
if [ -z "$PID" ]; then
exit 1
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.
"$NSENTER" $OPTS su - root
else
# Use env to clear all host environment variables.
"$NSENTER" $OPTS env --ignore-environment -- "$@"
fi
fi

保存退出,命令行下执行. docker_enter 容器ID或bash -x docker_enter.sh 容器ID,即可成功进入容器

分享名称:使用nsenter命令进入Docker容器
文章转载:http://www.hantingmc.com/qtweb/news18/96218.html

成都网站建设公司_创新互联,为您提供小程序开发面包屑导航ChatGPT品牌网站制作App开发手机网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联