4 分层文件
1 分层文件系统UnionFS 联合文件系统 bootfs:boot file system rootfs:root file system 分层文件系统 Docker镜像都是只读的,当容器启动时,一个新的可写层被加到镜像的顶部,这一层就是我们通常说的容器层,容器层之下的都叫镜像层 2 commit提交镜像12docker commit # 提交容器成为一个新的副本docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG] 创建新镜像 12345➜ ~ docker commit -a="zhangxiaoyude" -m="add webapps app" 7b8096067457 tomcat02:1.0sha256:6e0e1ad86723c435bdf26d368472195b7050de1d6b920252d9c93eac26132336➜ ~ docker images ...
5 容器数据卷
1 概述原理 Docker:将应用和环境打包成一个镜像 数据?如果数据在容器中,那么我们容器删除,数据就会丢失。需求:数据持久化。 所以:Mysql的数据可以存储在本地。 所以:容器间可以有一个数据共享的技术。 Docker容器中产生的数据,同步到本地。这就是卷技术。 本质上是一种目录挂载,将容器内的目录,挂载到宿主机上。 总结:容器的持久化和同步操作,容器间可以数据共享 使用 -v 实现文件映射 12345docker run -it -v 目录映射 -p 端口映射# -it 交互式# -v volume卷技术# -p 主机端口➜ ~ docker run -it -v /Users/yinkanglong/ceshi:/home centos /bin/bash 使用docker inspect 查看挂载情况mount 同步的过程,是一种双向绑定的过程。容器停止后,修改主机文件,再启动容器的时候,数据同样改变 是同步的过程,还是目录挂载到磁盘的同一个位置了? 实战:安装Mysql123456789101112131415# 获取镜像docker pu...
7 Docker网络
1 简介网络原理 下载iproute工具(linux)ip addr查看地址映射 容器内ip地址会进行映射@符号。docker分配的地址。 123477: eth0@if78: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever 容器、宿主机之间可以通过docker构建的docker虚拟网络进行通信,相互ping通 docker桥接原理vethc-pair技术,充当桥梁。 宿主机能够生成成对的地址,一端连接容器的虚拟网卡,另一端连接宿主机的虚拟网卡。 宿主机端的虚拟网卡们,能够构成一个局域网络。 宿主机...
6 DockerFile
Dockerfile1 DockerFile构建过程dockerfile是用来构建docker镜像文件!命令参数脚本 构建步骤 dockerfile docker build 构建一个镜像 docker run 运行镜像 docker push 发布一个镜像 dockerhub官方的镜像,会对应到github上一个仓库中的Dockerfile 指令1234567891011121314FROM 基础镜像MAINTAINER 镜像的维护者信息RUN Docker镜像构建的时候需要的命令ADD 步骤:tomcat的镜像中,tomcat的压缩包WORKDIR 镜像的工作目录VOLUME -v挂载的目录位置EXPOSE -p暴露端口CMD 指定这个容器启动的时候运行的命令,只有最后一个会生效,而且可悲替代ENTRYPOINT 指定这个容器启动的时候运行的命令,可以追加命令ONBUILD 当构建一个被继承的DockerfileFile,就会影响ONBUILD指令。触发指令COPY 类似ADD命令,将文件COPY到镜像中。ENV 构建的时候设置环境变量 每个保留关键字指令都是大写字母...
09.kubectl命令行
之前的部分按照操作内容,介绍操作的流程和原理。 这一部分主要对命令进行汇总 1 命令基础命令格式123kubectl [command] [type] [name] [flags]kubectl get pod pod_name -n asa-ms command:子命令,用于操作Kubernetes集群资源对象的命 令,例如create、delete、describe、get、apply等。 TYPE:资源对象的类型,区分大小写,能以单数、复数或者 简写形式表示。例如以下3种TYPE是等价的。 kubectl get pod kubectl get pods kubectl get po NAME:资源对象的名称,区分大小写。如果不指定名称, 系统则将返回属于TYPE的全部对象的列表,也可以指定多个资源对象。 kubectl get pods将返 回所有Pod的列表 kubectl get pods pod1 pod2 pod3 flags:kubectl子命令的可选参数,例如使用“-s”指定API Server的URL地址而不用默认值。 输出格式-o -...
jvm gc机制说明
1 GC的方式与过程 参考文档 https://blog.51cto.com/u_14962799/2739752关键词:伊甸园区,幸存区,年轻代,年老代,持久代 JVM内存的大致结构 年轻代(young generation) 两个幸存区(survivor) 一个伊甸区(eden) 老年代(old generation) 吃就带(perm) GC的工作过程 持久代:当类加载时,我们会将.class文件中的部分信息加载到持久区中,比如类的修饰符,字段属性和方法信息等。又或者时import引入类的信息。都叫持久代了,也就说明这块区间的内存相对稳定,垃圾回收一般也就没持久代啥事儿。 伊甸园区:伊甸园区好理解,希腊神话中人类诞生的地方。因此,当我们创建对象时,比如:new String(“123”);即JVM在伊甸园区创建了一个对象,对象里面装的是String类型的数据123。 幸存区:当伊甸园区的内存占满了,而又需要创建对象时,JVM就会像伊甸园区还活着的(被引用的对象),拷贝到幸存区去。此时其实会调用一此Minor GC操作,也可以称为迷你的垃圾回收动作,该动做就会将...
02 变量字符串
# shell 变量 ## 1 变量字符串 在一个脚本周期内,其值可以发生改变的量就是变量。 ### 命名规则: 在定义变量时,有一些规则需要遵守: * 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 * 等号左右两侧不能有空格,可以使用下划线“_”,变量的值如果有空格,需要使用单引号或双引号包括。如:“test=“hello world!””。 * 不能使用标点符号,不能使用bash里的关键字(可用help命令查看保留关键字)。 * 环境变量建议大写,便于区分 ### 变量分类 1. 用户自定义变量。由用户自定义的变量名和变量值。 2. 环境变量:保存和系统操作环境相关的数据。分为系统定义的环境变量和用户自定义的环境变量。 3. 位置参数变量:向脚本中传递参数或数据。变量名不能自定义,变量作用固定。 4. 预定义变量:Bash中已经定义好的变量。变量名自定义,变量作用也是固定的。 ## 2 用户变量 ### 变量定义 123456789[root@localhost ~]$ 2name="shen chao"-bash: 2n...
01 概述
概述常见的shell介绍sh/bash/zsh/dash 1 Shell简介概念shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 命令(与操作系统实时交互,工具软件,C语言实现的程序) 语言(进行程序设计,Linux各种软件本身是一个应用程序,也可以看做shell语言中的一个包!!!) Shell的分类 主要介绍bash,其他shell基本兼容bash提供的语法。 123456789101112➜ notes git:(master) ✗ cat /etc/shells # List of acceptable shells for chpass(1).# Ftpd will not allow users to connect who are not using# one of these shells./bin/bash/bin/csh/bin/dash/bin/...














