您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么使用nsenter命令進入Docker容器”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么使用nsenter命令進入Docker容器”吧!
nsenter命令是一個可以在指定進程的命令空間下運行指定程序的命令。一個最典型的用途就是進入容器的網絡命令空間。
查看本機裝沒有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容器”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。