【摘要】 Docker的基本组成 前提说明 CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本...查看自己的内核 uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。...查看已安装的CentOS版本信息(CentOS6.8有,CentOS7无该命令) Docker的基本组成 镜像(image) Docker 镜像(Image)就是一个只读的模板。...仓库分为公开仓库(Public)和私有仓库(Private)两种形式。 最大的公开仓库是 Docker Hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。...我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。
Docker的基本组成 Docker的架构图: ?...Docker中的名词: 镜像(image): Docker镜像就好像一个模板,可以通过这个模板来创建服务,就比如在JAVA中,你新建一个类比如A类,在运行中,这个类就会变成Class文件,那么在其他类中就可以多次通过...New 关键字创建,而Docker也是这个原理,比如我们拉取一个 tomcat镜像,那么就可以创建多个tomcat 容器(container): Docker利用容器技术可以,独立运行一个或者一组应用...,这些应用需要通过镜像构建,并且提供了 启动,停止,暂停,删除等操作,可以理解为最简单的Linux系统 仓库(repository): 仓库就是存放镜像的地方,仓库分为公有仓库和私有仓库,就好像Git...一样 Docker Hub: Docker的默认仓库,默认为国外地址,我们需要配置镜像加速,比如阿里云的公有库,就像MAVEN一样 最近的Docker中的知识来源于 B站狂胜说的 Docker《Docker
一、简单的CS历史 现代大多数计算机都是基于冯.诺伊曼提出的存储程序原理采用冯.诺伊曼架构,即由运算器、控制器、存储器和输入输出设备组成。...四、深入编译和链接过程。 下面详细分析由源文件是如何经过编译和链接过程最终生成可执行文件。...链接 (1)合并所有obj文件的段,并调整段偏移和段长度,合并符号表,进行符号解析,分配内存地址(虚拟地址)。 (2)链接的核心:符号的重定位。...针对编译和链接过程,提出以下需要解决的问题: (1)编译的过程是怎么样的? (2)obj文件的组成格式是什么,它为什么不能执行?....obj文件组成格式的分析,着重看 现在新的问题出现了: (2.1)既然.obj文件中都没有存储.bss段的信息,那么在程序中那些初始化为0的全局变量和未初始化的局部变量它是怎么识别它们的?
每次对镜像内容的修改,Docker 都会将这些修改铸造成一个镜像层,而一个镜像其实就是由其下层所有的镜像层所组成的。当然,每一个镜像层单独拿出来,与它之下的镜像层都可以组成一个镜像。...2.1 docker daemon 和 docker CLI 虽然我们说 Docker Engine 是一款软件,但实实在在去深究的话,它其实算是由多个独立软件所组成的软件包。...在这些程序中,最核心的就是 docker daemon 和 docker CLI 这俩了。...或者更确切的说,是通过这套 RESTful API 对 docker daemon 中运行的容器和其他资源进行管理。...熟悉程序结构的朋友们比较容易看出来,docker daemon 和 docker CLI 所组成的,正是一个标准 C/S ( Client-Server ) 结构的应用程序。
get_host_address 函数返回指定主机名的IP地址。...---------------------------------------------------------------------------- 192.168.2.4 SQL> 如果指定的主机名为...06512: at "SYS.UTL_INADDR", line 35 ORA-06512: at line 1 SQL> SYS_CONTEXT SYS_CONTEXT 函数能够返回当前会话的以下主机和IP...HOST—客户端计算机的主机名。 IP_ADDRESS-客户端计算机的IP地址。 SERVER_HOST-运行数据库实例的服务器的主机名。 以下示例显示了每个变量的典型输出。...SQL> V$INSTANCE V$INSTANCE 视图的HOST_NAME列包含运行该实例的服务器的主机名。
3 动态链接的解决方案 PLT和GOT 要实现动态链接共享库,也并不困难,和前面的静态链接里的符号表和重定向表类似 拿出一小段代码来看一看。...4 总结 终于在静态链接和程序装载后,利用动态链接把我们的内存利用到了极致 同样功能的代码生成的共享库,我们只要在内存里面保留一份就好了 这样 不仅能够做到代码在开发阶段的复用 也能做到代码在运行阶段的复用...5 推荐阅读 想要更加深入地了解动态链接,推荐你可以读一读《程序员的自我修养:链接、装载和库》的第7章 [5088755_1566066059057_20190818021919105.png] [5088755..._1566066058964_20190818021854409.png] 里面深入地讲解了,动态链接里程序内的数据布局和对应数据的加载关系。...参考 深入浅出计算机组成原理
可以给linux系统主机名,也可以根据需要修改主机名 指令hostname来查看主机名 修改主机名 vim /etc/hostname 进入之后修改就行 修改之后重启生效 设置host映射...如何通过主机名来ping通某个linux系统 在linux环境下输入 [root@bskkk ~]# vim /etc/hosts 把自己的ip和主机名直接添加在最后面保存退出即可 在...一个文本文件,用来记录IP和hostname(主机名)的映射关系 DNS是什么?...DNS就是域名系统 是互联网上作为域名和IP地址相互映射的一个分布式 数据库 应用实例: 比如用户在浏览器输入 www.baidu.com 会发生什么呢?...如果有则解析完成并返回 3.如果本地解析器缓存和hosts文件中都没有找到对应的IP,就会到公网域名服务器DNS进行寻找解析域。如果还没有找到,就会产生次域名不存在或者其它错误。
无论是实现一个向量加法,还是实现一个打印的函数,这些代码逻辑和输入的数据在内存里面的位置并不重要。...3 动态链接的解决方案 PLT和GOT 要实现动态链接共享库,也并不困难,和前面的静态链接里的符号表和重定向表类似 拿出一小段代码来看一看。...4 总结 终于在静态链接和程序装载后,利用动态链接把我们的内存利用到了极致 同样功能的代码生成的共享库,我们只要在内存里面保留一份就好了 这样 不仅能够做到代码在开发阶段的复用 也能做到代码在运行阶段的复用...5 推荐阅读 想要更加深入地了解动态链接,推荐你可以读一读《程序员的自我修养:链接、装载和库》的第7章 里面深入地讲解了,动态链接里程序内的数据布局和对应数据的加载关系。...参考 深入浅出计算机组成原理
linux基础 要理解链接,首先要理解以下inode inode 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。...这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。...链接数,即有多少文件名指向这个inode 文件数据block的位置 硬链接 硬链接是指多个文件指向同一个inode,相当于是文件的副本,删除其中任意一个文件并不会删除文件实体,只有删除了所有源文件和所有对应的硬链接文件才会删除文件实体...看起来是不是很像c++里的共享指针 软连接 软链接是指生成一个快捷方式,新建一个inode,inode指向源文件路径,删除了源文件,软链接文件依然存在,只是不能打开文件了,软链接文件和源文件类型不同
一、前言 编译型语言生成可执行文件的过程包括编译和链接。编译包括预处理、编译和汇编三个步骤。而链接则根据发生时间不同分为静态链接和动态链接。...三、静态链接 上面提到链接分为静态链接和动态链接,静态链接先于动态链接出现,动态链接属于计算机发展较后期出现的技术。两者没有优劣之分,只是各自有各自适用场景。...动态链接的基本思想是把程序按照模块拆分为各个相对独立部分,在程序运行时才将它们链接在一起形成一个完整的程序,而不是像静态链接那样在链接时将所有的模块组成一个可执行文件。...五、静态链接和动态链接对比 静态链接 优点 由于在可执行文件中已经具备所有执行文件所需要的东西,在执行的时候运行速度快。...虽然动态链接把链接过程推迟到了程序运行时,但是在形成可执行文件时(注意形成可执行文件和执行程序是两个概念),还是需要用到动态链接库。
软链接-符号链接:相当于windows的快捷方式。 创建命令: ln s 文件名 软链接的名字 ln-link s-soft 特点: 1.在linux中,软链接文件的颜色为浅蓝色。...2.软链接的大小为原文件的文件名大小,即路径长度。 3.软链接仅可在当前路径下使用,即和原文件在同一目录下。创建时最好给出原文件的绝对路径。 4.目录也可创建软链接,方法同上。...如上述的图片中,在这样形式的创建方式下如果将同一级目录下的软链接移动到其他目录下(与原文件不在同一个目录下),软链接会发生失效。...所以,这样的创建方式是有一定缺陷的,最好的创建方式,是给出整个原文件的绝对路径,而不是相对路径,这样就不会发生失效,即使软链接和原文件不在同一级目录下。...此外,如果原文件被删除,那么软链接也会发生失效,毕竟它只是一个快捷方式而已。 硬链接:在linux上,一以切皆文件。那么如何给出文件名,找到其在磁盘上的对应位置呢?
然后再去该文件所在的目录块(比如/目录)中把a.txt和inode编号1111的映射关系删掉。...但是,实际上,block里面的内容还没有被抹去,删除只是删除了寻址的方式和映射关系,真正的文件数据还是保存在block中的。...2 深入探析软链接和硬链接本质 软链接相当于Windows下的快捷方式,修改软链接文件,源文件内容也会改变,修改源文件内容,软链接文件内容随之改变。删除软链接不影响源文件,删除源文件软链接文件失效。...修改硬链接文件,源文件内容也会改变,修改源文件内容,硬链接文件内容随之改变。删除硬链接文件,源文件无影响;删除源文件,硬链接文件无影响。 那么软链接和硬链接这些特性是怎么来的呢?...ls -i /etc/password #可以查看inode编号(-di 可以查看目录的inode编号) df -i #查看每个磁盘分区的inode信息 通过上面介绍,我们知道文件的存储是由两部分数据组成的
在Linux下,我们使用ln命令创建软链接。 ? 软链接创建以后颜色就是青色的。我们打开它可以看到和原来的文件HelloWorld.c的内容是一样的。我们使用ls命令来具体看一看hello的属性。...当我们在创建软链接的时候,最好使用绝对路径,这样就不会出错了。 ? 创建软链接的命令格式如下:这样创建的软链接是可以移动的。当你移动软链接到别的目录下,仍旧能够使用。...ln -s 原始文件绝对路径 链接文件绝对路径 软链接是快捷方式,它相当于指向该文件的指针。通过它可以访问原始文件。链接文件的大小表示的是原始文件名的长度。...如果一个文件有多个硬链接,仅在指向 inode 的最后一个链接被删除且链接数为 0 时文件才会被删除。不能为目录创建硬链接。 创建硬链接的命令格式如下:即使不使用绝对路径也没有问题。...ln 原始文件路径 链接文件路径 ? 如上图,硬链接不能跨越文件系统。当我们输入上面的命令创建硬链接以后。再来看看文件本身的链接计数。 ? 他的链接计数变成了两个。我们去删除Myfifo文件。
ifcfg eth1:0 del 192.168.100.20 # 删除一个地址 [root@xuexi ~]# ifcfg eth1 stop # 临时禁用eth1 hostname命令 用于设置主机名...hostname [-I] [-f] [-d] [-s] [hostname] 选项说明: -I :获取该主机上所有非环回IP地址,该选项不依赖于主机名解析 -f,--fqdn :获取...fqdn -d,--domain:获取fqdn的域名部分,等价于命令dnsdomainname -s,--short :获取fqdn的主机名部分,严格地说是获取第一个"."...[root@xuexi ~]# hostname -I 192.168.100.54 172.16.10.10 hostname修改的主机名为临时生效,它修改的其实是/proc/sys/kernel/hostname
1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。...只删除一个连接并不影响索引节点本身和 其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。...软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
下面是详细的介绍: 存在两种不同类型的链接,软链接和硬链接。...和win下的快捷方式差不多。 链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。...硬链接文件 硬链接文件有两个限制: 1、不允许给目录创建硬链接; 2、只有在同一文件系统中的文件之间才能创建链接。 对硬链接文件进行读写和删除操作时候,结果和软链接相同。...链接有两种方式,软链接和硬链接。...对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。 这时,系统就“忘记”了它曾经是硬链接文件。
一、 翻译环境 翻译环境是由 编译和链接 两个大的过程组成的,而编译又可以分解成:预处理(有些书也叫预编译)、编译、汇编三个过程。 ...注:在Windows环境下的目标文件的后缀是 .obj ,Linux环境下目标文件的后缀是 .o 多个目标文件和链接库 一起经过链接器处理生成最终的可执行程序。...就是根据汇编指令和机器指令的对照表⼀⼀的进行翻译,也不做指令优化。 1.4 链接 链接是一个复杂的过程,链接的时候需要把一堆文件链接在一起才生成可执行程序。...链接过程主要包括:地址和空间分配,符号决议和重定位等这些步骤。 链接解决的是一个项目中多文件、多模块之间互相调用的问题。 ...函数和 g_val 变量的地址,所以暂时把调用 Add 的指令的目标地址和 g_val 的地址搁置。
其实翻译环境是由编译和链接两个过程组成的,通过编译和链接这两个过程,即可将源代码文件解析为计算机能懂的机器指令。...②多个⽬标⽂件和链接库⼀起经过链接器处理⽣成最终的可执⾏程序。 ③链接库是指运⾏时库(它是⽀持程序运⾏的基本函数集合)或者第三⽅库。...②链接过程主要包括:地址和空间分配,符号决议和重定位等这些步骤,解决⼀个项⽬中多⽂件、多模块之间互相调⽤的问题。...③通过上述表示,这就解释了为什么我们写两个独立的.c文件,能够互相访问,就是通过将多文件和多模块进行链接处理,使其能够互相调用。 代码示例:通过写main.c文件和fun.c文件,实现两数相加。...,生成可执行文件: # 链接main.o、func.o,以及默认的libc库,生成可执行文件a.out gcc main.o func.o -o my_program 通过编译和链接这两个过程就能实现
实际上,翻译环境包括 编译 和 链接 两大过程,而 编译 又可进一步分解为:预处理、编译 和 汇编 三个步骤。 在一个 C 语言项目中,可能有多个.c文件共同构建。...随后,这些目标文件与所需的链接库(如:动态库、静态库)一起,由链接器处理,最终生成可执行程序。...链接(Linking) 链接是一个复杂的过程,涉及地址与空间分配、符号决议和重定位等步骤。其主要解决多文件、多模块间的相互调用问题。...例如,一个项目中包含test.c和add.c两个文件: test.c经编译生成test.o add.c经编译生成add.o 若test.c中使用了add.c中的Add函数和全局变量g_val...链接时,链接器会在其他模块中查找这些符号的地址,并将test.c中所有引用这些符号的指令重新修正为正确的地址。此过程称为**“重定位”**。
创建符号链接 mklink aa.cpp ClearSeveLib.cpp 创建硬链接 mklink /h aa.cpp ClearSeveLib.cpp 未深入研究, 两种方法都是可以将一个文件, 放到多个目录