zoukankan      html  css  js  c++  java
  • Docker两种方式进入后台运行的容器

    1、在启动容器的时候,有时候我们加了参数-d,这时容器自动进入后台运行。如果我们要进入容器,该怎么办?通常使用docker attach命令和nsenter工具。

    2、docker attach是Docker自带的命令。

    $ docker run -idt centos
    $ docker ps
    $ docker attach 9b930d9d1e20
    $ docker attach cocky_carson


    该命令有时候并不方便,因为他是同步的,若有多个用户attach到一个容器,一个窗口命令阻塞,其他窗口都无法执行。

    3、nsenter命令:在util-linux包2.23版本后都有自带包含。nsenter可以访问另一个进程的名字空间。

    是否安装nsenter,通过nsenter --version查看。

    a.安装nsenter

    $ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
    $ tar -zxvf util-linux-2.24.tar.gz
    $ cd util-linux-2.24
    $ ./configure --without-ncurses && make nsenter
    $ cp nsenter /usr/local/bin

    b.通过nsenter命令进入容器

    为了链接到容器,需要知道容器的PID,可以使用inspect获取,如:

    docker inspect -f {{.State.Pid}} 5fbe4b029608 ##获取PID,5fbe4b029608为容器ID
    docker inspect 5fbe4b029608 ##查看该容器的详细信息

    获取了PID之后,就可以通过下面的命令进入容器了

    nsenter --target 31353 --mount --uts --ipc --net --pid ##31353为"docker inspect -f {{.State.Pid}} 5fbe4b029608"输出的结果

  • 相关阅读:
    读《梦断代码》有感
    The Third Group Meeting!
    第一次课程作业项目报告
    第四次读后感
    个人作业进度(五)
    个人作业进度(四)
    个人作业进度(三)
    个人进度(二)
    个人作业进度(一)
    java中类的封装与继承
  • 原文地址:https://www.cnblogs.com/linjiqin/p/8612580.html
Copyright © 2011-2022 走看看