zoukankan      html  css  js  c++  java
  • Docker

    进入容器交互终端

    使用docker attach命令进入容器交互终端。
    注意:如果多个窗口同时attach到同一个容器,那么所有窗口都会同步显示。如果某个窗口因命令阻塞时,那么其他窗口将无法执行操作。

    [root@CentOS-7 ~]# docker images ubuntu
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    docker.io/ubuntu    latest              6a2f32de169d        13 days ago         117.2 MB
    [root@CentOS-7 ~]# 
    [root@CentOS-7 ~]# docker run --name test -idt ubuntu
    6a0e7b067fe3122ad23b34d84653ca0872cda44efff903198f41e76e017e4a26
    [root@CentOS-7 ~]# 
    [root@CentOS-7 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    6a0e7b067fe3        ubuntu              "/bin/bash"         7 seconds ago       Up 7 seconds                            test
    [root@CentOS-7 ~]# 
    [root@CentOS-7 ~]# docker attach test
    root@6a0e7b067fe3:/# 
    root@6a0e7b067fe3:/# exit
    exit
    [root@CentOS-7 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    [root@CentOS-7 ~]# 
    

    退出容器交互终端

    通过Ctrl-p和Ctrl-q键,可以退出正在交互的容器终端,此时容器不会终止。
    特别注意:通过exit命令或Ctrl+d键来退出容器终端时,所创建的容器立刻终止。

    [root@CentOS-7 ~]# docker run --name test -it ubuntu bash
    root@a445204315f3:/# 
    root@a445204315f3:/#    # 先后按Ctrl-p和Ctrl-q键
    [root@CentOS-7 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    a445204315f3        ubuntu              "bash"              36 seconds ago      Up 34 seconds                           test
    [root@CentOS-7 ~]# 
    

    使用nsenter工具进入容器交互终端

    nsenter启动一个新的shell进程(默认是/bin/bash), 同时会把这个新进程切换到和目标(target)进程相同的命名空间,相当于进入了容器内部。
    nsenter包含在util-linux 2.23版本之后,而且运行需要root权限。
    特别注意:通过exit命令或Ctrl+d键来退出容器终端时,所创建的容器不会终止。

    [root@CentOS-7 ~]# rpm -qa |grep util-linux
    util-linux-2.23.2-26.el7.x86_64
    [root@CentOS-7 ~]# 
    [root@CentOS-7 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    a445204315f3        ubuntu              "bash"              2 hours ago         Up 2 hours                              test
    [root@CentOS-7 ~]# 
    [root@CentOS-7 ~]# PID=$(docker inspect --format "{{ .State.Pid }}" test)
    [root@CentOS-7 ~]# 
    [root@CentOS-7 ~]# nsenter --target $PID --uts --ipc --net --pid
    [root@a445204315f3 ~]# 
    [root@a445204315f3 ~]# exit
    logout
    [root@CentOS-7 ~]# 
    [root@CentOS-7 ~]# docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    a445204315f3        ubuntu              "bash"              2 hours ago         Up 2 hours                              test
    [root@CentOS-7 ~]# 
    
  • 相关阅读:
    P1121 环状最大两段子段和
    无题
    cdoj 1485 柱爷搞子串 sam treap
    自然数幂和
    Gym 100341C AVL Trees NTT
    线性筛分解质因子
    codeforces 366 Ant Man dp
    UVALive 6914 Maze Mayhem 轮廓线dp
    hdu 5790 Prefix 字典树 主席树
    莫比乌斯反演个人小结
  • 原文地址:https://www.cnblogs.com/anliven/p/6771214.html
Copyright © 2011-2022 走看看