进入容器交互终端

使用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 ~]#

Docker - 终端交互的更多相关文章

  1. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第四组(转)

    十:联机处理-可选项终端根据卡片行为分析的结果,执行对应的处理.若卡片响应联机,则终端发起联机操作.联机处理使得发卡行后台可以根据基于后台的风险管理参数检查并授权批准或拒绝交易.除了传统的联机欺诈和信 ...

  2. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第三组

    七:终端风险管理-必选但包含可选步骤异常文件:终端检查应用主账号是否在异常文件列表(卡号黑名单)中.商户强制联机:商户可以将当前交易强制为联机处理.最低限额:控制交易当前交易金额或同一张卡片连续几笔交 ...

  3. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第二组(转)

    四:脱机数据认证-可选终端进行脱机数据认证来,认证卡片.记住:对于某个事情,终端与卡片谁单独也说了不算,要二者都能干才能干. 终端依据卡片(AIP)和终端(终端性能)的支持情况,决定是否使用及使用哪种 ...

  4. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第一组(转)

    两个PPT结合起来--一些基础介绍--每一步的详细细节还要去研读文档 EMV-全球标准PBOC-国内标准 ----------------------一:必选:应用选择应用选择的方法:目录选择法.AI ...

  5. 多服务器终端交互利器--polysh和atnodes到高逼格日志中心

    最近博客更新的少了,相对而言,我在自己的个人公众号里还是挺活跃的,大家可以扫描旁边的二维码,或者微信搜索公众号:“编程一生”加关注. 在分布式的年代,一个应用需要部署到多台服务器上.那么要查看日志文件 ...

  6. docker进入交互界面

    进入cmd交互界面 docker run -it python:3.5 /bin/bash 退出 exit ctrl + d

  7. 超炫酷的 Docker 终端 UI lazydocker

    A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. https ...

  8. Docker - 从零开始到操作

    从零开始 介绍Docker的基本概念和命令,并给出简单使用示例和参考信息. Docker - 基础讲义 http://www.cnblogs.com/anliven/p/6281373.html Do ...

  9. Docker部署Bytom全节点钱包

    微服务和容器目前比较流行,相信很多小伙伴都比较熟悉docker, 如果你不是太了解,可以查看文档docker学习手册.那如何用docker搭建比原链(Bytom)的节点呢? 在操作之前,请自行安装do ...

随机推荐

  1. YARN 命令总结

    起因:YARN 使用capability schedule queue调度container,spark 的app卡死在YARN的队列里面无法出来,无奈请教大神时,可用[yarn applicatio ...

  2. iOS开发之数据存储之SQLite3(包括FMDB)

    1.概述 SQLite3是一款开源的嵌入式关系型数据库,可移植性好.易使用.内存开销小. SQLite3是无类型的,意味着你可以保存任何类型的数据到任意表的任意字段中.比如下列的创表语句是合法的: c ...

  3. java的特点跨平台原理以及JDK的安装

    终于开始了期待已久的java,了解java首先要了解下计算机语言的发展历史 机器语言--->汇编语言--->--->高级语言(面向过程的语言和面向对象的语言) 机器语言 每一个计算机 ...

  4. MCMC(四)Gibbs采样

    MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链 MCMC(三)MCMC采样和M-H采样 MCMC(四)Gibbs采样 在MCMC(三)MCMC采样和M-H采样中,我们讲到了M-H采样已经可以很好 ...

  5. centos5.11架设svn(svn系列 架设服务器 知识一总结)

    ♣svn是什么? ♣安装    --yum安装    --创建svn版本库目录    --创建版本库    --进入conf目录进行配置(该svn版本库配置文件)    --启动svn版本库    - ...

  6. 使用SevenZipSharp压缩/解压7z格式

    7z格式采用的LZMA算法,号称具有现今最高压缩率.笔者在nuget上搜索7z,在搜索结果中最终选择了SevenZipSharp来进行压缩/解压.不得不说,SevenZipSharp的API设计得非常 ...

  7. C++中进制转换问题

    一直在刷题的时候,都会遇到一个坑,就是进制转换的问题.而每一次都傻乎乎的自己去实现一个.所以算是对以前的坑的一个总结. itoa 函数 itoa是广泛应用的非标准C语言和C++语言扩展函数.由于它不是 ...

  8. Git 更新本地代码

    先用git remote -v 查看远程仓库的分支: 我分支远程仓库就只有一个分支master 比较本地仓库和远程仓库的不同 我本地仓库和远程仓库的代码是一样的所以没有区别 更新远程代码到本地 合并本 ...

  9. javascript里的几种常见的数组方法

    Array()的几种方法 1.splice(2,3,4)删除数组中任意项(三个参数). 2.splice(1,3)删除从第一项开始的往后三项(两个参数).(splice可以结合pop(),unshif ...

  10. Vxlan与网卡offload性能

    背景 由于数据链路层MTU的限制,发送端TCP/UDP数据在交付到IP层时需要与MTU相匹配,TCP数据不能超过mss,较长的UDP需要分片(Fragmentation)以满足MTU要求:接收端协议栈 ...