如何进入Docker容器

2023-05-16

概述

在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法。

进入Docker容器比较常见的几种做法如下:

  • 使用docker attach
  • 使用SSH
  • 使用nsenter
  • 使用exec

下面我们来逐一讲一下每种方式。

一、使用docker attach进入Docker容器

Docker提供了attach命令来进入Docker容器。

接下来我们创建一个守护态的Docker容器,然后使用docker attach命令进入该容器。

$ sudo docker run -itd ubuntu:14.04 /bin/bash

然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器

$ sudo docker attach 44fc0f0582d9

可以看到我们已经进入到该容器中了。

但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。下来我们来演示一下。打开两个窗口,都使用attach命令进入同一个容器里面。如下所示:

接下来我们只在第一个窗口进行操作,可以看到第一个窗口的操作同步到第二个窗口显示了,如下:


因为这个原因,所以docker attach命令不太适合于生产环境,平时自己开发应用时可以使用该命令。

二、使用SSH进入Docker容器

在生产环境中排除了使用docker attach命令进入容器之后,相信大家第一个想到的就是ssh。在镜像(或容器)中安装SSH Server,这样就能保证多人进入容器且相互之间不受干扰了,相信大家在当前的生产环境中(没有使用Docker的情况)也是这样做的。但是使用了Docker容器之后不建议使用ssh进入到Docker容器内。关于为什么不建议使用,请参考如下几篇文章:

Why you don't need to run SSHd in your Docker containers

上面这篇文章是英文的,如果英语不好的话可以参考如下译文

为什么不需要在 Docker 容器中运行 sshd

三、使用nsenter进入Docker容器

在上面两种方式都不适合的情况下,还有一种比较方便的方法,即使用nsenter进入Docker容器。关于什么是nsenter请参考如下文章:

https://github.com/jpetazzo/nsenter

在了解了什么是nsenter之后,我们需要把nsenter安装到主机中(注意是主机而非容器或镜像),具体的安装命令如下:

$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
$ tar -xzvf util-linux-2.24.tar.gz
$ cd util-linux-2.24/
$ ./configure --without-ncurses
$ make nsenter
$ sudo cp nsenter /usr/local/bin
安装好nsenter之后可以查看一下该命令的使用。

nsenter可以访问另一个进程的名称空间。所以为了连接到某个容器我们还需要获取该容器的第一个进程的PID。可以使用docker inspect命令来拿到该PID。

docker inspect命令使用如下:

$ sudo docker inspect --help

inspect命令可以分层级显示一个镜像或容器的信息。比如我们当前有一个正在运行的容器

可以使用docker inspect来查看该容器的详细信息。

$ sudo docker inspect 44fc0f0582d9

由其该信息非常多,此处只截取了其中一部分进行展示。如果要显示该容器第一个进行的PID可以使用如下方式

$ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9

在拿到该进程PID之后我们就可以使用nsenter命令访问该容器了。

$ sudo nsenter --target 3326 --mount --uts --ipc --net --pid
其中的3326即刚才拿到的进程的PID

当然,如果你认为每次都输入那么多参数太麻烦的话,网上也有许多做好的脚本供大家使用。

地址如下:

http://yeasy.gitbooks.io/docker_practice/content/container/enter.html

http://www.tuicool.com/articles/eYnUBrR


四、使用docker exec进入Docker容器

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

$ sudo docker exec --help

接下来我们使用该命令进入一个已经在运行的容器

$ sudo docker ps
$ sudo docker exec -it 775c7c9ee1e1 /bin/bash


网上还有一种做法是使用nsinit,没有亲身实践过所以不在此罗列了,有兴趣的话可以尝试一下。

好了,关于如何进入Docker容器就暂告一段落,如有错误之处请大家指正,谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何进入Docker容器 的相关文章

  • 无人机通信协议:MavLink协议使用

    mavlink的数据封装的结构体以及封装解析的函数都在mavlink代码库中的头文件中 主要的结构体 xff1a E mavlink mavlink include v1 0 mavlink types h MAVPACKED typede
  • 【计算机视觉】Lecture 16:平面单应变换

    动机 xff1a 在平面上的点 回顾 xff1a 正向投影 世界坐标系到相机坐标系的变换 透视矩阵方程 xff08 相机坐标系到成像坐标系 xff09 成像坐标系到像素坐标系 从成像坐标 xff08 x xff0c y xff09 到像素坐
  • 【计算机视觉】Lecture 20:八点法

    提醒 本质 基础矩阵 本质矩阵和基础矩阵都是 3x3 的矩阵 xff0c 用于 编码 两个视图的对极几何 动机 xff1a 给定一张图像中的一个点 xff0c 乘以本质 基础矩阵将告诉我们在第二个视图中沿着哪个极线搜索 本质 基础矩阵总结
  • 【计算机视觉】Lecture 23:光流估计

    流估计 主要概念 xff1a 亮度08好恒定方程 孔径问题 Lucas Kanade算法 回顾 xff1a 由于自身运动产生的场 流 xff08 Flow xff09 xff1a 旋转分量不依赖于场景结构 平移分量随场景 Z 值的变化而变化
  • 【计算机视觉】Lecture 24:视频变化检测

    视频基础 每秒30帧 每一幅图像的处理时间不会太多 因此 xff0c 实时算法往往非常简单 视频图像的主要特征之一是帧间的时间一致性 在1 30秒内帧间变化不大 xff01 检测移动的对象 假设 xff1a 移动的对象是非常重要的 xff0
  • Eigen中基本和常用函数

    Eigen 中矩阵的定义 span class token macro property span class token directive keyword include span span class token string lt
  • 基于四元数的存在外点Wahba问题的可证明最优解

    论文地址 论文视频 文章导读 为什么这次要解读这篇文章 xff1f 因为上次文章 xff08 详见 TEASER 快速且可证明的点云配准算法和代码解读 xff09 旋转求解部分就是用本文中的方法 xff0c 所以本文算是TEASER方法的前
  • 极端外点率下鲁棒配准的多项式时间解

    论文地址 论文视频 文章导读 为什么要解读这篇文章 xff1f 因为之前接连介绍该作者的两个工作 xff0c TEASER 快速且可证明的点云配准算法和代码解读 和 基于四元数的存在外点Wahba问题的可证明最优解 xff0c 前者的未知有
  • 基于拉格朗日对偶的凸全局三维配准

    论文地址 文章导读 最近自己的工作有借鉴这篇文章中用到的拉格朗日对偶 xff0c 然后就细读了文章的内容并且分析了对应的代码 拉格朗日对偶属于凸优化的范畴 xff0c 详细的定义和理论可以在 Convex optimization 一书中进
  • PX4的软件在环仿真

    一 Linux ROS Nodes单机仿真 1 安装ROS Kinetic xff08 参考http wiki ros org kinetic Installation Ubuntu xff09 1 1 添加软件源 sudo sh c ec
  • 让STM32CubeMX带你飞,菜鸟秒变STM32高手

    让STM32CubeMX带你飞 xff0c 菜鸟秒变STM32高手 STM32CubeMX是ST意法半导体近几年来大力推荐的STM32芯片图形化配置工具 xff0c 允许用户使用图形化向导生成C 初始化代码 xff0c 可以大大减轻开发工作
  • Release file for http://xxx/ubuntu/dists/bionic-updates/InRelease is not valid yet报错解决

    参考 https blog 51cto com 5437315 2420097 中说明的原因 原因 xff1a 系统时间与网络时间 xff08 仓库 xff09 的不同导致更新错误 按照这个原因解释 xff0c 我查看了自己虚拟机内ubun
  • 如何在keil官网上下载 STM32包 pack

    https www 360kuai com pc 990a8ec633cf2109c cota 61 4 amp tj url 61 xz amp sign 61 360 57c3bbd1 amp refer scene 61 so 1
  • Makefile学习笔记系列1:一个简单的Makefile

    开启Makefile系列学习前 xff0c 先来个简单的 xff0c 没有子目录结构的例子 xff0c 只有一个makefile文件 目录结构 xff1a Makefile代码 xff1a XX 61 g 43 43 CFLAGS 61 g
  • PID控制算法的C语言实现

    PID控制算法的C语言实现一 PID算法原理 最近两天在考虑一般控制算法的C语言实现问题 xff0c 发现网络上尚没有一套完整的比较体系的讲解 于是总结了几天 xff0c 整理一套思路分享给大家 在工业应用中PID及其衍生算法是应用最广泛的
  • pageCache

    写在前面 在开始正式的讨论前 xff0c 我先抛出几个问题 xff1a 谈到磁盘时 xff0c 常说的HDD磁盘和SSD磁盘最大的区别是什么 xff1f 这些差异会影响我们的系统设计吗 xff1f 单线程写文件有点慢 xff0c 那多开几个
  • 基于Python高光谱遥感影像处理实例

    前言 在写波段配准相关代码时经常需要用到tif影像的波段合成和分解 xff0c 虽然可以用ENVI才处理 xff0c 但是每次都要打开再设置一些参数有些麻烦 xff0c 所以本着 独立自主 自力更生 的原则就写了些脚本来处理这个需求 又写了
  • 基于SIFT的图像Matlab拼接教程

    前言 图像拼接技术 xff0c 将普通图像或视频图像进行无缝拼接 xff0c 得到超宽视角甚至360度的全景图 xff0c 这样就可以用普通数码相机实现场面宏大的景物拍摄 利用计算机进行匹配 xff0c 将多幅具有重叠关系的图像拼合成为一幅
  • PERSIANN 降雨数据使用教程

    一 前言 PERSIANN xff0c 使用人工神经网络从遥感信息中估算降水 xff0c 是一种基于卫星的降水检索算法 xff0c 可提供近乎实时的降雨信息 该算法使用来自全球地球同步卫星的红外 IR 卫星数据作为降水信息的主要来源 红外图
  • 基于Pyqt5快速构建应用程序详细教程

    一 介绍 图形用户界面 xff0c 更广为人知的名称是 GUI xff0c 是当今大多数个人计算机的一个特征 它为不同计算技能水平的用户提供了直观的体验 尽管 GUI 应用程序可能会使用更多资源 xff0c 但由于其点击式特性 xff0c

随机推荐

  • 基于Python的PROSAIL模型介绍以及使用

    1 介绍 PROSAIL是两种模型耦合得到的 SAIL是冠层尺度的辐射传输模型 xff0c 把冠层假设成是连续的且具有给定几何形状和密度的水平均匀分布的介质层 xff0c 从而模拟入射辐射与均匀介质之间的相互作用 xff0c 具体还是挺复杂
  • 可能是最全的FreeRTOS源码分析及应用开发系列

    可能是最全的FreeRTOS源码分析及应用开发系列 FreeRTOS 是一个可裁剪的小型且免费的 RTOS 系统 xff0c 尺寸非常小 xff0c 可运行于微控制器上 其特点包括 xff1a 内核支持抢占式 xff0c 合作式和时间片调度
  • 关于VS中LNK1120与errorLNK2019问题

    最近遇到了该问题 xff0c 再查找了一些资料后 xff0c 发现了针对自己问题的解决方法 xff0c 贴出来让大家一起学习一下 其实如果这两个问题同时出现 xff0c 很可能不是链接库缺了lib xff0c 而是编译中添加的源没有被实例化
  • PCL—低层次视觉—点云分割(基于凹凸性)

    转自 xff1a http www cnblogs com ironstark p 5027269 html PCL 低层次视觉 点云分割 xff08 基于凹凸性 xff09 1 图像分割的两条思路 场景分割时机器视觉中的重要任务 xff0
  • 【ENVI入门系列】13.分类后处理

    原文地址 xff1a ENVI入门系列 13 分类后处理 作者 xff1a ENVI IDL中国 版权声明 xff1a 本教程涉及到的数据提供仅练习使用 xff0c 禁止用于商业用途 目录 分类后处理 1 概述 2 分类后处理 2 1 小斑
  • ENVI神经网络工具参数和使用方法

    原文地址 xff1a ENVI神经网络工具参数和使用方法 作者 xff1a pengheligis xff08 1 xff09 Activation xff1a 选择活化函数 对数 xff08 Logistic xff09 和双曲线 xff
  • 详解使用pscp命令Linux文件上传与下载

    一 上传 2 开始 运行 cmd进入到 dos模式输入以下命令 以下是代码片段 xff1a pscp D java apache tomcat 5 5 27 webapps szfdc rardev 64 192 168 68 249 ho
  • java学习总结及心得体会

    前言 xff1a 哈哈 xff0c 今天是2015年 xff18 月 xff12 号 xff0c 星期日 xff0c 今天是收货的一天 xff0c 很开心 xff0c 很快乐 到底发生了什么呢 xff0c 容我慢慢来 世界很大 xff0c
  • 二进制的表白

    没能提起勇气对她进行表白 xff0c 只能寄托于0 1代码记录下对你的喜欢 01000101 01110110 01100101 01101110 00100001 01001001 00100000 01101100 01101111 0
  • C语言strcat()函数:连接字符串

    头文件 xff1a include lt string h gt strcat 函数用来连接字符串 xff0c 其原型为 xff1a char strcat char dest const char src 参数 dest 为目的字符串指针
  • linux 下TCP通信例程

    TCP server span class token macro property span class token directive hash span span class token directive keyword inclu
  • FreeRTOS系列|消息队列一

    消息队列一 1 消息队列简介 消息队列可以在任务与任务 任务与中断之间传递消息 xff0c 队列可以保存有限个具有确定长度的数据单元 队列可保存的最大单元数目被称为队列的长度 xff0c 在队列创建时需要指定其长度和每个单元 xff08 队
  • 【达内课程】网络通信之HTTP协议和Get请求实例(1)

    文章目录 HTTP协议发送HTTP GET请求增加参数 HTTP协议 HTTP协议 HTTP 协议是超文本传输控制协议 HTTP 协议中定义了客户端与服务端的通信流程与数据交互格式 网络通信中的长连接与短链接 长连接 xff1a 当客户端与
  • 学习Kalibr工具--Camera与IMU联合标定过程

    上一节介绍了 xff0c 用kalibr工具对camera进行标定的操作流程 xff0c 在camera标定之好之后 xff0c 进行camera与IMU进行联合标定的操作的学习 xff0c 即求取相机和IMU 之间的转换关系 坐标系之间的
  • C++之数据对齐

    目录 关于对齐数据对齐结构体对齐原则原理分析 关于对齐 对齐方式 xff1a 表示的是一个类型的对象存放的内存地址应满足的条件好处 xff1a 对齐的数据在读写上有性能优势对于不对齐的结构体 xff0c 编译器会自动补齐以提高CPU的寻址效
  • 对于人工智能,你有怎样的认识和理解?

    作为最初级的程序员 xff0c 对于高深的技术总是望尘莫及 xff0c 而高大上的人工智能更是让我们感觉遥远 xff0c 不过路都是一步步走出来的 xff0c 只要一直走 xff0c 总有触及到的一天 今天就来聊聊你对于人工智能的认识吧 x
  • windows通过独立ip形式访问docker容器

    windows10环境下通过docker容器独立ip暴露给局域网进行访问 自定义docker network docker network create subnet 61 172 20 0 0 24 mhy net 启动docker ng
  • Docker镜像

    概述 前面我们说了Docker的基本概念 xff0c 这里我们把每一块内容进行详细疏理一下 xff0c 本篇主要讲的是Docker的镜像相关内容 注 xff1a 本篇内容主要以 Docker从入门到实践 中镜像一模块为主线 xff0c 结合
  • Docker容器

    概述 前面我们讲了Docker三个主要概念中的镜像 xff0c 这里我们再来讲一下Docker的第二个重要概念 xff1a 容器 容器是独立运行的一个或一组应用以及它们的运行态环境 关于容器本篇主要讲如下几部分内容 xff1a 启动容器 关
  • 如何进入Docker容器

    概述 在使用Docker创建了容器之后 xff0c 大家比较关心的就是如何进入该容器了 xff0c 其实进入Docker容器有好几多种方式 xff0c 这里我们就讲一下常用的几种进入Docker容器的方法 进入Docker容器比较常见的几种