每天1小时,一周时间轻松搞懂Docker容器技术!偷偷努力卷
Docker容器技术初识
Docker容器技术简介
Docker是一个开源项目,诞生与2013年初,由Docker公司(前dotCloud公司,PaaS市场中的老牌提供商)的团队编写,最初是dotCloud公司内部的一个业余项目,整个程序是基于google公司推出的Go语言实现。
Docker的思想来自于集装箱,集装箱解决了什么问题?
在一艘大船上,可以把货物规整地摆放起来,并且各种各样的货物被装在集装箱里,集装箱和集装箱之间不会互相影响,那么我就不需要专门运送蔬菜的船和专门运送货物的船了。
只要这些货物在集装箱里封装得好好的,那我就可以用一艘大船把他们都运走。
简而言之:可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器环境。Docker官方网站:https:docs。docker。comDocker参考资料:https:github。commobymobyDocker仓库网站:https:registry。hub。docker。com
Docker容器技术优势简单轻量的建模:Docker上手非常快,用户只需要几分钟,就可以把自己的程序Docker化。职责的逻辑分离:使用Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。快速高效的开发生命周期:Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作。鼓励使用面向服务的架构:Docker推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型
从上图容器技术与虚拟技术对比可知:容器技术:
是隔离的环境中运行的一个进程,如果容器对应的进程结束,容器就会随之停止;
容器在隔离环境中,拥有自己的IP地址、系统文件、主机名称、进程管理等信息;
容器不需要物理硬件CPU的支持,是共用宿主机内核,启动容器环境并运行容器中的进程。
容器环境启动流程较快,运行性能较高,资源损耗较小,属于比较轻量级的服务。虚拟技术:
需要物理主机CPU支持(vt虚拟化),并且虚拟主机是模拟计算机硬件运行的环境,会正常有开启运行启动流程;
虚拟主机启动流程较慢,运行性能较低,资源损耗较大,属于比较重量级的服务器。
性能对比分析:
Docker容器组件简介
Docker技术包含以下几个核心组件部分:Docker客户端和服务器(也称为Dcoker引擎);Docker镜像Docker仓库(Registry)Docker容器
01。Docker客户端和服务器
Docker是一个客户端服务器(CS)架构的程序。
Docker客户端只需要向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。
Docker守护进程有时也称为Docker引擎。
Docker提供了一个命令行工具docker以及一整套RESTfulAPI来与守护进程交互。用户可以在同一台宿主机上运行Docker守护进程和客户端;用户可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
02。Docker镜像
可以把镜像当作容器的源代码。镜像体积很小,非常便携,易于分享、存储和更新。
03。Docker仓库(Registry)
Docker用Registry来保存用户构建的镜像。
Registry分为公共和私有两种:Docker公司运营的公共Registry称为DockerHub。
用户可以在DcokerHub注册账号,分享并保存自己的镜像。
04。Docker容器
Docker可以帮助用户构建和部署容器,用户只需要把自己的应用程序或服务打包放进容器即可。
容器是基于镜像启动起来的,容器中可以运行一个或多个进程。
可以这样认为,镜像是Docker生命周期中的构建或打包阶段,而容器则是启动或执行阶段。
今天给大家分享一个数据库全套学习资料包,【Docker快速入门视频Docker学习笔记视频配套资料合集】,一份资料包涵盖99核心技术点。
Docker快速入门视频
Docker学习笔记
Docker教程目录数据库服务知识排错容器技术课程概述介绍容器技术概念介绍说明容器技术作用优势介绍容器技术核心组件构成容器服务部署前期优化容器服务部署安装过程容器服务镜像相关命令容器服务容器相关命令容器服务知识内容梳理容器服务技术梳理扩展容器服务数据持久存储容器服务网络模拟介绍容器虚拟网卡作用详述容器虚拟网卡通讯实践容器虚拟网卡模式应用容器镜像仓库自建作用容器镜像仓库证书创建容器镜像仓库构建过程harbor容器镜像仓库应用说明容器服务构建靶场环境
【领取方式见文末】
【领取方式见文末】
【领取方式见文末】
Docker环境构建方法
Docker主机环境规划
在部署docker主机环境时,先对需要进行部署的主机地址与名称信息,以及用途进行规划:
系统虚拟主机部署完毕后,需要进行基本的系统初始化操作:
01。配置虚拟主机名称:hostnamectlsethostnamedocker01
02。关闭系统安全软件:关闭系统防火墙软件〔rootdocker01〕systemctlstopfirewalld〔rootdocker01〕systemctlisactivefirewalld。serviceinactive〔rootdocker01〕systemctldisablefirewalld。serviceRemovedsymlinketcsystemdsystemmultiuser。target。wantsfirewalld。service。Removedsymlinketcsystemdsystemdbusorg。fedoraproject。FirewallD1。service。〔rootdocker01〕systemctlisenabledfirewalld。servicedisabled说明:如果需要使用iptables防火墙可以进行安装,在部署docker是可以先关闭iptables安装iptables〔rootdocker01〕yuminstalliptablesservicesy禁用iptables〔rootdocker01〕systemctlstopiptablessystemctldisableiptables清空iptables规则配置〔rootdocker01〕iptablesF关闭系统selinux程序〔rootdocker01〕setenforce0〔rootdocker01〕getenforcePermissive表示临时关闭selinux〔rootdocker01〕sedi7senforcingdisabledgetcselinuxconfig〔rootdocker01〕sedn7petcselinuxconfigSELINUXdisabled表示永久关闭selinux(需要重启生效)
03。进行系统时间同步:下载时间同步软件〔rootdocker01〕yuminstallyntpntpdate〔rootdocker01〕ntpdatecn。pool。ntp。org编写计划任务〔rootdocker01〕crontabe1usrsbinntpdatecn。pool。ntp。orgdevnull重启crond服务使配置生效:〔rootdocker01〕systemctlrestartcrond
04。安装系统基础软件:〔rootdocker01〕yuminstallywgetnettoolsnfsutilslrzszgccgcccmakecmakelibxml2developenssldevelcurlcurldevelunzipsudontplibaiodevelwgetvimncursesdevelautoconfautomakezlibdevelpythondevelepelreleaseopensshserversocatipvsadmconntrackyumutils
Docker容器软件部署
【Linux系统命令行界面安装】
01。进行docker下载源优化:配置dockerce国内下载yum源(阿里云清华源)〔rootdocker01〕yumconfigmanageraddrepohttp:mirrors。aliyun。comdockercelinuxcentosdockerce。repo省略部分内容reposavedtoetcyum。repos。ddockerce。repo说明:将指定下载源文件保存到etcyum。repos。d目录中清华源配置:https:mirrors。tuna。tsinghua。edu。cnhelpdockerce
02。进行docker依赖包安装:〔rootdocker01〕yuminstallydevicemapperpersistentdatalvm2
03。进行docker社区版安装:〔rootdocker01〕yuminstalldockercey〔rootdocker01〕dockerversionClient:DockerEngineCommunityVersion:20。10。7查看使用的Docker版本信息APIversion:1。41Goversion:go1。13。15Gitcommit:f0df350Built:WedJun211:58:102021OSArch:linuxamd64Context:defaultExperimental:trueCannotconnecttotheDockerdaemonatunix:varrundocker。sock。Isthedockerdaemonrunning?
04。进行docker社区版启动:〔rootdocker01〕systemctlstartdockersystemctlenabledocker〔rootdocker01〕systemctlstatusdockerdocker。serviceDockerApplicationContainerEngineLoaded:loaded(usrlibsystemdsystemdocker。service;enabled;vendorpreset:disabled)Active:active(running)sinceSat2021073104:11:16CST;9sagoDocs:https:docs。docker。com说明:看到running,表示docker正常运行
Docker容器内核配置
01。修改内核参数实现数据包转发功能:
brnetfilter模块用于将桥接流量转发至iptables链,brnetfiter内核参数需要开启转发进行内核参数信息配置:〔rootdocker01〕modprobebrnetfilter〔rootdocker01〕catetcsysctl。ddocker。confEOFnet。bridge。bridgenfcallip6tables1net。bridge。bridgenfcalliptables1net。ipv4。ipforward1EOF查看内核参数配置信息:〔rootdocker01〕catetcsysctl。ddocker。confnet。bridge。bridgenfcallip6tables1net。bridge。bridgenfcalliptables1net。ipv4。ipforward1加载内核参数配置信息:〔rootdocker01〕sysctlpetcsysctl。ddocker。confnet。bridge。bridgenfcallip6tables1net。bridge。bridgenfcalliptables1net。ipv4。ipforward1检查确认内核模块状态:〔rootdocker01〕lsmodgrepbrnetfilterbrnetfilter222560bridge1513361brnetfilter
重启系统主机后模块会失效,可以设置开机自动加载模块:在etcsysconfigmodules目录下新建模块文件〔rootdocker01〕vimetcsysconfigmodulesbrnetfilter。modulesmodprobebrnetfilter对新增的模块文件增加执行权限〔rootdocker01〕chmodxetcsysconfigmodulesbrnetfilter。modules或者〔rootdocker01〕chmod755etcsysconfigmodulesbrnetfilter。modules在etc目录下新建rc。sysinit文件〔rootdocker01〕vimetcrc。sysinit!binbashforfileinetcsysconfigmodules。modulesdo〔xfile〕filedone系统重启后查看内核模块是否加载〔rootdocker01〕lsmodgrepbrnetfilterbrnetfilter222560bridge1513361brnetfilter
在未开启内核参数时,docker安装运行时会经常出现如下错误:WARNING:bridgenfcalliptablesisdisabled需要将iptables的内核参数开启,才不会影响docker容器之间的通讯net。bridge。bridgenfcallip6tables1net。bridge。bridgenfcalliptables1
将Linux系统作为路由或者VPN服务就必须要开启IP转发功能。
当linux主机有多个网卡时一个网卡收到的信息是否能够传递给其他的网卡,如果设置成1的话可以进行数据包转发,可以实现VxLAN等功能,不开启会导致docker部署应用无法访问。开启系统主机数据包内核转发功能net。ipv4。ipforward1
所有内核参数信息配置完毕后,需要重启docker服务程序〔rootdocker01〕systemctlrestartdocker
Docker容器加速配置
docker镜像加速器可以提升拉取镜像的效率。
国内从DockerHub拉取镜像有时会遇到困难,此时可以配置镜像加速器,Docker官方和国内很多云服务商都提供了国内加速器服务。
01。镜像加速器服务配置阿里云
登录阿里云镜像仓库:(如果没有开通,可开通阿里云的镜像服务)
https:cr。console。aliyun。comcnhangzhouinstancesmirrors
CentOS系统配置docker镜像加速器方法:1。安装升级Docker客户端推荐安装1。10。0以上版本的Docker客户端,参考文档dockerce2。配置镜像加速器针对Docker客户端版本大于1。10。0的用户您可以通过修改daemon配置文件etcdockerdaemon。json来使用加速器〔rootdocker01〕mkdirpetcdocker〔rootdocker01〕teeetcdockerdaemon。jsonEOF{registrymirrors:〔https:y1edhblz。mirror。aliyuncs。com〕根据自己阿里云加速器地址配置}EOF3。查看镜像加速器配置文件信息〔rootdocker01〕catetcdockerdaemon。json{registrymirrors:〔https:y1edhblz。mirror。aliyuncs。com〕单一加速器配置或者registrymirrors:〔https:y1edhblz。mirror。aliyuncs。com,https:registry。dockercn。com,https:docker。mirrors。ustc。edu。cn,https:dockerhub。azk8s。cn,http:hubmirror。c。163。com〕多个加速器配置}4。重新加载docker配置环境并重启docker服务〔rootdocker01〕systemctldaemonreload〔rootdocker01〕systemctlrestartdocker
Docker基本管理命令
Docker镜像相关操作说明
01。在Dockerhub上查找镜像信息〔rootdocker01〕dockersearchcentos
02。在Dockerhub上下载镜像信息〔rootdocker01〕dockerpullcentos
03。查看本地已经下载的镜像〔rootdocker01〕dockerimages
04。已有镜像制作离线压缩包〔rootdocker01〕dockersaveocentos。tar。gzcentos说明:一旦压缩包制作完成,就可以利用压缩文件分享容器镜像数据信息
05。加载镜像离线压缩包文件〔rootdocker01〕dockerloadicentos。tar。gzLoadedimage:centos:latest说明:容器镜像压缩包不要用tar命令进行解压,要用dockerload加载及解压镜像压缩包
06。删除本地已经下载的镜像〔rootdocker01〕dockerrmicentosrmi或者〔rootdocker01〕dockerrmifcentos表示强制删除镜像信息〔rootdocker01〕dockerimages镜像信息查看,确认指定镜像已经删除REPOSITORYTAGIMAGEIDCREATEDSIZE
Docker容器相关操作说明
01。以交互方式启动并进入容器〔rootdocker01〕dockerrunnamehelloitcentosbinbash说明:运行以上命令表示启动容器并进入容器中进行交互操作,dockerrun表示运行容器命令
02。守护进程方式运行启动容器〔rootdocker01〕dockerrunnamehello1tdcentos31f18b2ddf88a72b2ef62e14b7a383d9e27a07e514fc1de0b37c537b37f78402利用td参数可以实现指定容器以守护进程方式运行〔rootdocker01〕dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES31f18b2ddf88centosbinbash11secondsagoUp10secondshello1指定的hello1容器已经实现守护进程方式运行,容器操作退出后,容器仍旧处于运行状态〔rootdocker01〕dockerexecithello1binbash〔root31f18b2ddf88〕表示进入到指定的守护进程方式运行的容器中,利用dockerexec进入到指定容器
03。查看容器处于运行状态命令查看正在运行的容器〔rootdocker01〕dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESf575329c7325centosbinbash4minutesagoUp4minuteshello查看所有可用的容器〔rootdocker01〕dockerpsaCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESf575329c7325centosbinbash6minutesagoExited(0)6secondsagohello说明:dockerpsa表示将所有容器信息显示,包括已经退出的容器
04。管理容器运行状态相关命令停止指定容器运行状态〔rootdocker01〕dockerstophello1hello1〔rootdocker01〕dockerpsaCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES31f18b2ddf88centosbinbash12minutesagoExited(0)hello1激活指定容器活跃状态〔rootdocker01〕dockerstarthello1hello1〔rootdocker01〕dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES31f18b2ddf88centosbinbash14minutesagoUp3secondshello1
05。进入运行状态容器当中命令进入到指定运行容器中〔rootdocker01〕dockerexecithello1binbash〔root31f18b2ddf88〕
06。删除指定使用容器相关命令删除未运行状态的容器,直接利用dockerrm删除即可〔rootdocker01〕dockerrmhellohello〔rootdocker01〕dockerpsa普通删除生效,hello容器已经消失CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES31f18b2ddf88centosbinbash18minutesagoUp4minuteshello1删除已运行状态的容器,直接利用dockerrmf删除即可〔rootdocker01〕dockerrmfhello1hello1〔rootdocker01〕dockerpsa强制删除生效,hello1容器已经消失CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
07。获取容器运行过程日志信息获取容器操作ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a信息〔rootdocker01〕dockerlogshello1
为什么这两年夜店里那么多喷射战士?我顶不住了,先上个厕所,兄弟你帮我带下气氛,别让那两个妞觉得无聊跑了。Harry面色狰狞的捂着肚子,他抓住自己兄弟胳膊的手软弱无力,因为他正集中力量稳住下盘。来不及细说,……
图博美犬都吃什么零食甜品不要给狗狗博美原产德国,是一种紧凑、短背、活跃的玩赏犬。学名哈多利系博美犬,是德国狐狸犬的一种。它拥有柔软、浓密的底毛和粗硬的皮毛。现在饲养这种狗狗的人非常多。博美犬是比较著名的小……
图月季修剪后预防黑杆有技巧这样做植株更健康喜欢养月季的花友现在比较多,一些朋友缺少经验,给月季修剪之后,很容易遇到月季黑杆以及黑枝的情况。但是又苦于不知道月季黑杆的原因,也不知道该如何处理。很多养月季的朋友都表示……
图热带鱼病了怎么喂食断粮有利于身体恢复热带鱼在其生长发育过程中难免会患上各种各样的疾病。热带鱼患病的原因很多,热带鱼后会失去原有的色彩,会影响其正常发育生长,严重的则会导致死亡。热带鱼是现在鱼友们非常喜欢的一……
图银杏种子种植方法分享提前催芽成活率更高银杏又名公孙树,是果树中寿命较长的树种,为中国所特有,素有活化石之称。银杏树的种植方法主要有播种育苗、利用萌蘖繁殖苗木、嫁接繁殖、苗木移植、扦插育苗等。银杏在地球上已经生……
图可卡犬是大型犬吗各个方面让你迅速了解它们可卡犬是猎犬的一种,所以很多人认为可卡犬属于大型犬。实际上可卡犬分为好几个不同的种类。那么可卡犬到底有什么样的特征呢?它们在饲养过程中有什么值得注意的呢?一、可卡犬算不上……
图植物的芽儿过冬的方式专家为你科普生存的秘密不同的植物因为其习性的不同,自然在过冬方式上也有很大的区别。我们今天就为大家介绍一些植物的过冬方式,让大家深刻的了解一下这些植物是怎么在冬天存活的。一、丢叶图存。莲……
图西伯利亚雪橇犬的训练方法出错要立刻制止狗狗西伯利亚雪橇犬又被叫做哈士奇,是原始的古老犬种,原来主要在西伯利亚东北部、格陵兰南部生活。它们比较温顺,与金毛犬、拉布拉多并列为三大无攻击型犬类。西伯利亚雪橇犬,是哈士奇……
图科普植物缺钾症状出现这些情况要及时施肥钾元素能增强植物抗旱能力,帮助植物适应外界不良环境。钾还能促进光合作用,促进光合作用产物的运输,促进蛋白质的合成。如果缺少钾元素的话,植株很难长好。大家都知道人体不能缺少……
图茶杯犬的喂养知识这样做狗狗食欲更旺盛茶杯犬是近几年才兴起的一类特殊的犬种。它不是单指某一犬种,而是一类超小型犬的总称。它们的标准体高度是20厘米,体重是两千克。这种狗狗比较娇弱,需要精心喂养。茶杯犬是近些年……
图植物盆栽寓意以此送礼时这些常识必须要懂中国是礼仪之邦,与人相交,讲究礼尚往来。送礼物,不求贵重,但求有心,盆栽是不错的选择。但是不同盆栽有不同的寓意,不要胡乱相送,以免被人耻笑。很多人追求生活品质,喜欢在家里……
图秋田犬智商排名中等偏上这样训练狗狗更优秀秋田犬是日本比较受欢迎的宠物狗,在日本的许多城市和郊区都可以看见它们的身影。近些年来,秋田犬也渐渐的走进了中国爱宠人士的家庭,成为人们比较喜欢的一种宠物犬。秋田犬原产于日……