zoukankan      html  css  js  c++  java
  • 实测可用,进入容器的两种办法。

    在学习docker的过程中,虽然可以使用k8s进行相应的管理,但还是会遇到很多的需要进入容器的情况,方法如下:

    1.使用nsenter:

    在大多数Linux发行版中,util-linux包中含有nsenter.如果没有,你需要安装它.

    cd /tmp
    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
    cp nsenter /usr/local/bin
    

    使用shell脚本 docker-enter,将如下代码保存为docker-enter, chomod +x docker-enter

    #!/bin/sh
    
    	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
    
    	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 <container id> ,这样就进入到指定的容器中。

    2.命令exec

    docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用:

      sudo docker exec --help   

      sudo docker ps  

    查看你所需要进入容器的container ID,然后:

      sudo docker exec -it 775c7c9ee1e1 /bin/bash  

  • 相关阅读:
    LinqToXML~读XML文件
    C#~使用FileSystemWatcher来监视文件系统的变化
    HDU4144:Bacon's Cipher
    国产手机的路还很长
    同一个存储过程中,不能多次select into 到同一张表的问题
    IT行业为什么没有进度
    IOT(Index Organized Table)
    模版——容器,迭代器
    shell split分析日志文件
    VMware vSphere 服务器虚拟化之十七 桌面虚拟化之安装View链接服务器
  • 原文地址:https://www.cnblogs.com/xiaoyuxixi/p/11220581.html
Copyright © 2011-2022 走看看