查看 Docker 容器的名字空间 .
熟悉 Linux 技术的人都知道,容器只是利用名字空间进行隔离的进程而已,Docker 在容器实现上也是利用了 Linux 自身的技术。
有时候,我们需要在宿主机上对容器内进行一些操作,当然,这种绕过 Docker 的操作方式并不推荐。
如果你使用的是比较新的 Docker 版本,会尴尬的发现,直接使用系统命令,会无法访问到容器名字空间。
这里,首先介绍下 ip netns
系列命令。这些命令负责操作系统中的网络名字空间。
首先,我们使用 add
命令创建一个临时的网络名字空间
$ip netns add test
然后,使用 show
命令来查看系统中的网络名字空间,会看到刚创建的 test 名字空间。
$ip netns show test
另外,一个很有用的命令是 exec
,会在对应名字空间内执行命令。例如
$ ip netns exec test ifconfig
使用 del
命令删除刚创建的 test 名字空间。
$ip netns del test
接下来运行一个 Docker 容器,例如
$ docker run -it ubuntu
再次执行 ip netns show
命令。很遗憾,这里什么输出都没有。
原因在于,Docker 启动容器后仍然会以进程号创建新的名字空间,但在较新的版本里面,默认删除了系统中的名字空间信息文件。
网络名字空间文件位于 /var/run/netns 下面,比如我们之前创建的 test 名字空间,则在这个目录下有一个 test 文件。诸如 netns 类似的系统命令依靠这些文件才能获得名字空间的信息。
在容器启动后,查看这个目录,会发现什么都没有。
OK,那让我们手动重建它。
首先,使用下面的命令查看容器进程信息,比如这里的1234。
$ docker inspect --format='{{. State.Pid}} ' $container_id 1234
接下来,在 /proc 目录(保存进程的所有相关信息)下,把对应的网络名字空间文件链接到 /var/run/netns 下面
$ ln -s proc/1234/ns/net /var/run/netns/
然后,就可以通过正常的系统命令来查看或访问容器的名字空间了。
查看 Docker 容器的名字空间 .相关推荐
- linux查看docker使用率,查看docker容器的内存占用
使用docker stats命令可以查看容器的内存,但是有时候docker stats命令获得的数据可能准确,可以参考下面这种方式 先通过docker ps -a 找到容器的container id ...
- docker 每次都得source /etc/profile以及如何查看Docker容器环境变量、向容器传递环境变量
如何查看Docker容器环境变量,如何向容器传递环境变量 方式一: ENV SERVER_PORT 80 ENV APP_NAME pkslow 方式二: $ docker run -itd --na ...
- 查看docker容器日志
1:实时查看docker容器id为 02c5ac132ee5 的最后10行日志 docker logs -f -t --tail 10 02c5ac132ee5 2:查看指定时间后的日志,只显示最后1 ...
- docker logs 查看docker容器日志详解
docker logs 查看docker容器日志详解 通过docker logs命令可以查看容器的日志. 命令格式: $ docker logs [OPTIONS] CONTAINEROptions: ...
- 【云原生】查看 Docker 容器启动命令和相关参数
安装Python3 Linux 一般都默认安装了 Python 2,而 Python2 就附带了 pip 命令,但 2 版本的 pip 经常在安装包的时候出错,所以建议安装 Python3.使用如下命 ...
- 查看docker 容器的ip地址
docker 容器的ip地址往往和服务器是一个局域网 ip地址不是127.0.01 那么如何查看docker 的ip地址 执行命令: docker inspect ca_peerOrg1(容器名称) ...
- docker logs 查看docker容器日志
命令格式 $ docker logs [OPTIONS] CONTAINEROptions:--details 显示更多的信息-f, --follow 跟踪实时日志--since string 显示自 ...
- docker 查看容器名_如何查看Docker容器环境变量,如何向容器传递环境变量
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 了解Docker容器的运行环境非常重要,我们把应用放在容器里执行,环境变量会直接影响程序的执行效果.所以我们要知道容器内部的 ...
- 日志查看 docker容器启动失败原因
1.查看异常容器id docker ps -a -- id:e85e4839fcde 2.查看日志所在路径: docker inspect --format '{{.LogPath}}' e85e48 ...
最新文章
- SAP成都研究院郑晓霞:Shift Left Testing和软件质量保证的一些思考
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- codeforces 872 D. Something with XOR Queries(思维)
- jquery单选框radio绑定click事件实现和是否选中的方法
- Java知识整理——基础知识
- Physical Standby Database (11g)-ADG
- python3 全局变量 局部变量_Python3获取变量名并修改函数内部的外部变量和局部变量,python3,在,local...
- 基于情感词典的情感值分析
- 南昌二中高考2021成绩查询,南昌二中2019高考成绩喜报、一本二本上线人数情况...
- mysql修改数据sql语句_sql语句修改数据
- MTK ELT工具,驻网
- sqlplus 命令导入数据文件
- 维宏控制卡win7 驱动_维宏控制系统驱动
- 浅析View的事件分发机制
- java概述及我的第一个java项目
- Inverting Generative Adversarial Renderer for Face Reconstruction
- EDI的含义及其重要性
- 【webGoat】Path traversal
- 2021年一次比较奇葩的 AWS 面试
- 金仓数据库KingbaseES SYS_BULKLOAD工具的使用
热门文章
- 华为设备ACL配置命令
- 教育大数据,想说爱你不容易
- 【pytorch】yolov4 实现对蛾子数据集的识别 以及 对蛾子图片二值化处理 实现 自动打标签标注。(本文重点在自动实现将图片转化为voc数据集)
- DC基础学习(二)Synthesis Flow1
- mysql 设置 sql_mode
- WebRTC IOS视频硬编码流程及其中传递的CVPixelBufferRef
- VMware vMotion简介
- matlab里的图像处理函数
- python列表查找值_查找列表中某个值的位置(python)
- python拆分字符串生成列表_关于python:如何将字符串拆分为列表?