温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用nsenter命令进入Docker容器

发布时间:2022-02-16 10:42:03 来源:亿速云 阅读:494 作者:iii 栏目:开发技术

本篇内容主要讲解“怎么使用nsenter命令进入Docker容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用nsenter命令进入Docker容器”吧!

nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。一个最典型的用途就是进入容器的网络命令空间。

怎么使用nsenter命令进入Docker容器

查看本机装没有nsenter

whereis nsenter或者whatis nsenter

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

vi nsenter.sh#!/bin/bashcurl 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/bincd .. && 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 ]; thenNSENTER=$(dirname "$0")/nsenterelseNSENTER=nsenterfiif [ -z "$1" ]; thenecho "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."elsePID=$(docker inspect --format "{{.State.Pid}}" "$1")if [ -z "$PID" ]; thenexit 1fishiftOPTS="--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 - rootelse# Use env to clear all host environment variables."$NSENTER" $OPTS env --ignore-environment -- "$@"fifi

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

到此,相信大家对“怎么使用nsenter命令进入Docker容器”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI