命令行界面 (CLI)、终端 (Terminal)、Shell、TTY的区别

Posted by 夏泽民

命令行界面 (CLI) = 使用文本命令进行交互的用户界面 终端 (Terminal) = TTY = 文本输入/输出环境 控制台 (Console) = 一种特殊的终端 Shell = 命令行解释器,执行用户输入的命令并返回结果

  1. 什么是命令行界面? 命令行界面,通俗来讲,就是你看过的那种满屏幕都是字符的界面。
  2. 终端 —— 人与机器交互的接口 2.2. 控制台 (Console) 是什么? 在历史上,终端是连接到计算机上的一种带输入输出功能的外设。但是有一个终端与众不同,它与计算机主机是一体的,是计算机的一个组成部分。这个特殊的终端就叫做 控制台(Console)。


setns

Posted by 夏泽民

1、首先使用docker创建一个容器,并获取该容器的network namespace $ docker run -itd –name test ubuntu /bin/bash $ docker ps $ docker inspect –format ‘{{ .State.Pid }}’ test 3656 由上可知,该容器的network namespace在/proc/3656/ns/net



runC

Posted by 夏泽民

https://github.com/opencontainers/runc/tree/v1.0.0-rc6 容器运行时(Container Runtime)是指管理容器和容器镜像的软件。当前业内比较有名的有docker,rkt等。如果不同的运行时只能支持各自的容器,那么显然不利于整个容器技术的发展。于是在2015年6月,由Docker以及其他容器领域的领导者共同建立了围绕容器格式和运行时的开放的工业化标准,即Open Container Initiative(OCI),OCI具体包含两个标准:运行时标准(runtime-spec)和容器镜像标准(image-spec)。简单来说,容器镜像标准定义了容器镜像的打包形式(pack format),而运行时标准定义了如何去运行一个容器。



docker exec 进入容器原理

Posted by 夏泽民

先查看当前docker容器进程号 docker inspect –format ‘{{ .State.Pid }}’ CONTAINER ID #CONTAINER ID可以用命令docker ps 查看 获得pid进程号为

docker inspect –format ‘{{ .State.Pid }}’ da27b7caa4bd

10822 用这个查看10822进程对于的所有namespace文件

ll /proc/10822/ns

lrwxrwxrwx 1 root root 0 Nov 8 17:56 ipc -> ipc:[4026532224] lrwxrwxrwx 1 root root 0 Nov 8 17:56 mnt -> mnt:[4026532222] lrwxrwxrwx 1 root root 0 Nov 8 17:56 net -> net:[4026532227] lrwxrwxrwx 1 root root 0 Nov 8 17:56 pid -> pid:[4026532225] lrwxrwxrwx 1 root root 0 Nov 8 17:56 user -> user:[4026531837] lrwxrwxrwx 1 root root 0 Nov 8 17:56 uts -> uts:[4026532223] 可以看到,一个进程的每种 Linux Namespace,都在它对应的 /proc/[进程号]/ns 下有一个对应的虚拟文件,并且链接到一个真实的 Namespace 文件上。



如何进入Docker容器

Posted by 夏泽民

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



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required