保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

docker的那些事儿

  在Linux(Ubuntu)中安装dockeraptgetremovedockerdockerenginedocker。iocontainerdruncaptupdateaptgetinstallcacertificatescurlgnupglsbreleasecurlfsSLhttp:mirrors。aliyun。comdockercelinuxubuntugpgsudoaptkeyaddaddaptrepositorydeb〔archamd64〕http:mirrors。aliyun。comdockercelinuxubuntu(lsbreleasecs)stableaptgetinstalldockercedockerceclicontainerd。io中途出现问题的话,使用sudoaptgetupdate试试systemctlstartdockeraptgetyinstallapttransporthttpscacertificatescurlsoftwarepropertiescommonservicedockerrestartdockerrunhelloworlddockerversiondocker常用命令帮助命令dockerversion显示Docker版本信息dockerinfo显示Docker系统信息,包括镜像和容器数量dockerhelp帮助文档镜像命令dockerimages〔options〕列出本地主机上的镜像optionsa:列出本地所有镜像q:只显示镜像iddockersearch〔imagename〕〔options〕dockersearch某个镜像的名称(对应DockerHub仓库中的镜像)optionsfilterstars50列出收藏数不小于指定值的镜像dockerpull〔imagename〕:〔tag〕下载镜像dockerimagermf〔imagenameorimageid〕。。。删除一个或多个镜像dockerimagermf(dockerimagesaq)删除本地全部镜像dockerimageinspect〔imageid〕查看镜像元数据dockerhistory〔imageidorimagename〕列出镜像的变更历史dockerloginu〔username〕登录dockerhubdockerpushchrishimycentos:1。0将镜像发布出去容器命令dockerrun〔options〕image〔command〕optionsnameName给容器指定一个名字d后台方式运行容器,并返回容器的idi以交互模式运行容器,通常和t一起使用t给容器重新分配一个终端,通常和i一起使用P随机端口映射(大写)p指定端口映射(小写),一般可以有四种写法ip:hostPort:containerPortip::containerPorthostPort:containerPort(常用)containerPortdockerrunitcentosbinbash使用centos用交互模式启动容器,在容器内执行binbash命令使用exit退出容器dockerps〔options〕列出所有运行的容器optionsa列出当前所有正在运行的容器历史运行过的容器l显示最近创建的容器n?显示最近n个创建的容器q只显示容器编号exit容器停止退出ctrlPQ容器不停止退出dockerstart〔containeridorcontainername〕启动容器dockerrestart〔containeridorcontainername〕重启容器dockerstop〔containeridorcontainername〕停止容器dockerkill〔containeridorcontainername〕强制停止容器dockerrm〔containerid〕删除指定容器dockerrmf(dockerpsaq)删除所有容器dockerpsaqxargsdockerrm删除所有容器dockerlogs〔options〕〔containerid〕查看容器日志optionst显示时间戳f打印最新的日志(followlogoutput)tail数字显示多少条dockertop〔containerid〕查看容器中运行的进程信息dockerinspect〔containerid〕查看容器的元数据dockerexecit〔containerid〕〔bashshell〕进入正在运行的容器(是在容器中打开新的终端,并且可以启动新的进程)dockerattach〔containerid〕直接进入容器启动命令的终端,不会启动新的进程dockercp容器id:容器内路径目的主机路径从容器内拷贝文件到主机上dockercommitm提交的描述信息a作者容器id要创建的目标镜像名:〔标签名〕从容器创建一个新的镜像容器数据卷挂载方式一:容器中直接使用命令来挂载dockerrunitv宿主机绝对路径目录:容器内目录镜像名binbashegdockerrundp3310:3306vhomemysqlconf:etcmysqlconf。dvhomemysqldata:varlibmysqleMYSQLROOTPASSWORD123456namemysql01mysql:5。7挂载方式二:通过DockerFile来挂载DockerfileFROMcentosVOLUME〔dataVolumeContainer1,dataVolumeContainer2〕CMDechoendCMDbinbashdockerbuildtchrisshicentos。匿名和具名挂载匿名挂载v容器内路径dockerrundPnamenginx01vetcnginxnginx匿名挂载的缺点,就是不好维护,通常使用命令dockervolume维护dockervolumels具名挂载v卷名:容器内路径dockerrundPnamenginx02vnginxconfig:etcnginxnginxdockervolumeinspectnginxconfig查看挂载的路径怎么判断挂载的是卷名而不是本机目录名?不是开始就是卷名,是开始就是目录名Dockerfile基础知识每条保留字指令都必须为大写字母且后面要跟随至少一个参数指令按照从上到下,顺序执行表示注释每条指令都会创建一个新的镜像层,并对镜像进行提交构建步骤编写Dockerfile文件dockerbuild构建镜像dockerrun构建过程docker从基础镜像运行一个容器执行一条指令并对容器做出修改执行类似dockercommit的操作提交一个新的镜像层docker再基于刚刚提交的镜像运行一个新容器执行Dockerfile中的下一条指令直到所有指令都执行完成Dockerfile指令FROM基础镜像,当前新镜像是基于哪个镜像的MAINTAINER镜像维护者的姓名混合邮箱地址RUNdockerbuild时需要运行的命令EXPOSE当前容器对外保留出的端口WORKDIR指定在创建容器后,终端默认登录的进来工作目录,一个落脚点ARGdockerbuild时Dockerfile文件中的变量ENVdockerrun时设置环境变量COPY拷贝文件和目录到镜像中ADD功能与COPY一样,但是多了自动解压文件的功能VOLUME容器数据卷,用于数据保存和持久化工作CMDdockerrun时要运行的命令,Dockerfile中可以有多个CMD指令,但只有最后一个生效ENTRYPOINTdockerrun时要运行的命令,和CMD一样ONBUILD当构建一个被继承的Dockerfile时运行命令,父镜像在被子镜像继承后,父镜像的ONBUILD被触发
  CMD:Dockerfifile中可以有多个CMD指令,但只有最后一个生效,CMD会被dockerrun之后的参数替换!
  ENTRYPOINT:dockerrun之后的参数会被当做参数传递给ENTRYPOINT,之后形成新的命令组合!实例
  背景:官方默认的centos镜像默认路径是,默认不支持vim,默认不支持ifcofig
  目的:使我们自己的镜像具备如下:登录后的默认路径(usrlocal)、vim编辑器、查看网络配置ifconfig支持DockerfileFROMcentos:7MAINTAINERchris。shisxy0129yeah。netENVMYPATHusrlocalWORKDIRMYPATHRUNyumupdateRUNyumyinstallvimRUNyumyinstallnettoolsEXPOSE80CMDechoMYPATHCMDechoendCMDbinbash构建dockerbuildt新镜像名字:TAG。dockerbuildtmycentos:1。0。运行dockerrunit新镜像名字:TAGdockerrunitmycentos:1。0列出镜像的变更历史dockerhistory〔imageid〕docker网络讲解理解docker0原理每一个安装了docker的linux主机都有一个docker0的虚拟网卡。这个是桥接网卡,使用了vethpair技术rootchrisvirtualmachine:ipaddr1:lo:LOOPBACK,UP,LOWERUPmtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000linkloopback00:00:00:00:00:00brd00:00:00:00:00:00inet127。0。0。18scopehostlovalidlftforeverpreferredlftforeverinet6::1128scopehostvalidlftforeverpreferredlftforever2:ens33:BROADCAST,MULTICAST,UP,LOWERUPmtu1500qdiscfqcodelstateUPgroupdefaultqlen1000linkether00:0c:29:7a:47:5abrdff:ff:ff:ff:ff:ffaltnameenp2s1inet192。168。32。12824brd192。168。32。255scopeglobaldynamicnoprefixrouteens33validlft5529035secpreferredlft5529035secinet6fe80::7a87:6135:1c98:61a964scopelinknoprefixroutevalidlftforeverpreferredlftforever3:docker0:NOCARRIER,BROADCAST,MULTICAST,UPmtu1500qdiscnoqueuestateDOWNgroupdefaultlinkether02:42:8c:f2:d0:2dbrdff:ff:ff:ff:ff:ffinet172。17。0。116brd172。17。255。255scopeglobaldocker0validlftforeverpreferredlftforeverinet6fe80::42:8cff:fef2:d02d64scopelinkvalidlftforeverpreferredlftforever4:br89830bc6a152:NOCARRIER,BROADCAST,MULTICAST,UPmtu1500qdiscnoqueuestateDOWNgroupdefaultlinkether02:42:78:e0:07:c8brdff:ff:ff:ff:ff:ffinet192。168。0。116brd192。168。255。255scopeglobalbr89830bc6a152validlftforeverpreferredlftforever每启动一个docker容器,linux主机就会多一个虚拟网卡我们启动了一个tomcat01(172。17。0。2),主机的ip地址多了一个24:vethf840e91if23dockerrundPnametomcat01tomcat然后我们在tomcat01容器中查看容器的ip是23:eth0if24dockerexecittomcat01ipaddr我们再启动一个tomcat02(172。17。03)观察dockerrundPnametomcat02tomcat然后发现linux主机上又多了一个网卡26:vethe152c3eif25我们看下tomcat02的容器内ip地址是25:eth0if26vethpair就是一对虚拟设备接口,它都是成对出现的。一端连着协议栈,一端彼此相连着。正因为有这个特性,它常常充当着一个桥梁,连接着各种虚拟网络设备!Bridge、OVS之间的连接,Docker容器之间的连接等等,以此构建出非常复杂的虚拟网络结构,比如OpenStackNeutron。测试tomcat01和tomcat02容器间是否可以互相ping通root0f3b19b75279:usrlocaltomcatping172。17。0。3PING172。17。0。3(172。17。0。3):56databytes64bytesfrom172。17。0。3:icmpseq0ttl64time2。966ms64bytesfrom172。17。0。3:icmpseq1ttl64time0。164ms64bytesfrom172。17。0。3:icmpseq2ttl64time0。171ms结论:容器和容器之间是可以互相访问的结论tomcat1和tomcat2共用一个路由器。是的,他们使用的一个,就是docker0任何一个容器启动默认都是docker0网络docker默认会给容器分配一个可用ip小结Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为ContainerIP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的ContainerIP直接通信。Docker容器网络就很好的利用了Linux虚拟网络技术,在本地主机和容器内分别创建一个虚拟接口,并让他们彼此联通(这样一对接口叫vethpair)Docker中的网络接口默认都是虚拟的接口。虚拟接口的优势就是转发效率极高(因为Linux是在内核中进行数据的复制来实现虚拟接口之间的数据转发,无需通过外部的网络设备交换),对于本地系统和容器系统来说,虚拟接口跟一个正常的以太网卡相比并没有区别,只是他的速度快很多。
  Link思考一个场景,我们编写一个微服务,数据库连接地址原来是使用ip的,如果ip变化就不行了,那我们能不能使用服务名访问呢?
  jdbc:mysql:mysql:3306,这样的话哪怕mysql重启,我们也不需要修改配置了!docker提供了link的操作!我们使用tomcat02,直接通过容器名pingtomcat01,不使用ip,发现是ping不通的我们再启动一个tomcat03,但是启动的时候连接tomcat02dockerrundPnametomcat03linktomcat02tomcat这个时候,我们就可以使用tomcat03ping通tomcat02了dockerexecittomcat03pingtomcat02再来测试,tomcat03是否可以ping通tomcat01失败再来测试,tomcat02是否可以ping通tomcat03反向也ping不通思考,这个原理是什么呢?我们进入tomcat03中查看下host配置文件rootf86e6836e0a1:usrlocaltomcatcatetchosts127。0。0。1localhost::1localhostip6localhostip6loopbackfe00::0ip6localnetff00::0ip6mcastprefixff02::1ip6allnodesff02::2ip6allrouters172。17。0。3tomcat02a263c1e773b2发现tomcat2直接被写在这里172。17。0。4f86e6836e0a1所以这里其实就是配置了一个hosts地址而已!原因:link的时候,直接把需要link的主机的域名和ip直接配置到了hosts文件中了
  link早都过时了,我们不推荐使用!我们可以使用自定义网络的方式自定义网络基本概念rootchrisvirtualmachine:dockernetworkhelpUsage:dockernetworkCOMMANDManagenetworksCommands:connectConnectacontainertoanetworkcreateCreateanetworkdisconnectDisconnectacontainerfromanetworkinspectDisplaydetailedinformationononeormorenetworkslsListnetworkspruneRemoveallunusednetworksrmRemoveoneormorenetworks
  所有网络模式
  网络模式
  配置
  说明
  bridge模式
  netbridge
  默认值,再docker网桥docker0上为容器创建新的网络栈
  none模式
  netnone
  不配置网络,用户可以稍后进入容器,自行配置
  container模式
  netcontainer:nameid
  容器和另外一个容器共享Networknamespace。kubernetes中的pod就是多个容器共享一个Networknamespace
  host模式
  nethost
  容器和宿主机共享Networknamespace
  用户自定义
  net自定义网络
  用户自己使用network相关命令定义网络,创建容器的时候可以指定为自己定义的网络1。删除原来的所有容器dockerrmf(dockerpsaq)2。接下来我们来创建容器,但是我们知道默认创建的容器都是docker0网卡的dockerrundPnametomcat01netbridgetomcatdocker0网络的特点1。它是默认的2。域名访问不通3。link域名通了,但是删了又不行3。我们可以让容器创建的时候使用自定义网络dockernetworkcreatedriverbridgesubnet192。168。0。016gateway192。168。0。1mynetdockernetworklsdockernetworkinspectmynet4。我们来启动两个容器测试,使用自己的mynet!dockerrundPnametomcatnet01netmynettomcatdockerrundPnametomcatnet02netmynettomcatdockernetworkinspectmynet5。我们来测试ping容器名和ip试试,都可以ping通dockerexecittomcatnet01ping192。168。0。3dockerexecittomcatnet01pingtomcatnet02
  发现,我们自定义的网络docker都已经帮我们维护好了对应的关系
  所以我们平时都可以这样使用网络,不使用link效果一样,所有东西实时维护好,直接域名ping通网络联通
  docker0和自定义网络肯定不通,我们使用自定义网络的好处就是网络隔离
  那关键的问题来了,如何让tomcatnet01访问tomcat1?1。启动默认的容器,在docker0网络下dockerrundPnametomcat01tomcatdockerrundPnametomcat02tomcat2。我们来测试一下!打通mynetdocker0dockernetworkconnectmynettomcat01dockernetworkinspectmynet发现我们的tomcat01就进来这里了,tomcat01拥有了双ip3。tomcat01可以ping通了dockerexecittomcat01pingtomcatnet014。tomcat02依旧ping不通,大家应该就理解了
  结论:如果要跨网络操作别人,就需要使用dockernetworkconnect〔OPTIONS〕NETWORKCONTAINER连接

安徽省有哪些很厉害的高中?在全国排位如何?菜鸟来谈谈吧,欢迎大家关注菜鸟!O安徽省的好高中还是比较多的,在全国的排名还可以。菜鸟整理了一些有关安徽省高中的整体的分布和排名情况,大家可以看看。一、安徽省比较好……在同一个学校当老师,本科生和研究生有什么不同吗?学历待遇不同;教育方式不同;科研能力不同。第一,学历待不遇同。(1)招聘教师,现在中小学校对教师的学历要求都是本科以;高职、大专院校要求硕士以上;本科、科研院校要求博士以……第一次爬瀑布作文在平日的学习、工作和生活里,许多人都有过写作文的经历,对作文都不陌生吧,作文一定要做到主题集中,围绕同一主题作深入阐述,切忌东拉西扯,主题涣散甚至无主题。怎么写作文才能避免踩雷……我和妈妈爬长城的作文暑假,妈妈带我去北京旅游。在火车上,妈妈不断地向我介绍北京:北京名胜古迹很多,有一段古老的城墙叫八达岭长城,是明长城,是明代重修的长城,有近千年的历史,是古代劳动人民用血汗筑成……大学生活2000字作文大学,多少高三学子向往的地方。大学生活,每一个高中生都梦寐以求的的想去体验一番。下面是小编精心收集的大学生活2000字作文,希望能对你有所帮助。大学生活2000字作文转瞬……水浒传中好词好句水浒传是我国四大名著之一,里面有许多经典人物有鲁智深、武松、宋江、柴进、李逵。读了这么多,我觉得他们都比较看重忠和义两个字。以下是小编整理的水浒传中好词好句,欢迎阅读。一……中秋节作文600字又是一年中秋节,我们一家子在享受着各种各样的中秋美食,老爸心里一个激动,给我讲起了他小时候过中秋节的故事。那时候,家里非常贫穷,奶奶舍不得买月饼,每到中秋就自己做月光饼。……河南省安阳市公务员待遇怎么样,一个月工资有多少?安阳市属于豫北地区,工业比较强,安阳市公务员待遇还是比较高的。我对河南省安阳市公务员工资待遇非常了解,下面我就详细分享一下河南省安阳市公务员的工资待遇情况。安阳市公务员待遇还可……广西未来的发展前景怎么样?背景:记者从自治区发展改革委获悉,2017年自治区层面统筹推进重大项目建设实施方案已获自治区政府批复。今年,自治区层面计划总投资14002。0亿元,新开工、续建、竣工投产和预备……为什么感觉职场中老油条能做得长久,反而是那些优秀的员工离职率职场老油条之所以能做久,是因为他们了解公司内部的各种矛盾,并且能左右逢源,摆平各种冲突,自己在这个过程中则游刃有余的获得最大收益。年轻优秀的后来人之所以做不久,往往是因为……写给儿子的第一封信散文亲爱的儿子:这是被称别人为作家的爸爸,第一次给自己的儿子写信,对此我感到十分的抱歉和惭愧。前天和你老叔通话,得知你去湖南实习的事情定下来了,我们并不感到吃惊。妈妈说……那人,那师,那班级人已走,门已锁,班已空,她仿佛是我漫长人生路上一位熟悉的过客,轻轻地来,又轻轻地走,她那如泉水般清甜的笑容,如阳光般温暖的话语,如舞者般婀娜的身姿,都已深深地刻在了我的脑海中!……
北京协和医院的科主任一年工资有100万嘛?工资肯定到不了100万,医院执行的是事业单位工资标准,一个科室主任就算是按最高的正高职称核发工资待遇,也不可能有100万那么高,顶天了二三十万。但是算综合收入,以北京协和医院的……关于外公的作文那缕纯纯的阳光踏进古老的大门。闻着重重的泥土味。我回来了,盘旋着时光而长大的古藤也开花了,盘虬卧龙地生长在楼上。而我也一样,乘坐在人生的班车中,在时间的道路上一点一点长大,而那沿途失去的风景……捕鼠记作文500字我家最近居然也闹起了鼠灾。这老鼠简直鼠胆包天,每次潜入我家大闹天宫,家里到处留下它的签名。最近叫人头疼的是三更半夜头吃饼干,啪、啪。使我们难以入睡。爸爸也经常半夜起来驱赶……在信用社借款三万,一分钱没有拿到,查征信报告欠了二十七万,这朋友们好!标题所言的这种情况,在基层金融单位,偶有发生,原因比较复杂朋友们分享一下,实践中可能的原因:一,被贷款!由于曾经借款有相关的资料,建议回忆一下,是否留有空……2018年合肥房价如何?2018年合肥房价如何?安徽城史来回答。合肥的房价一直是被人诟病的地方,就是因为合肥处于发展中的二线城市,涨幅过快的房价和不配套的基础设施,还有和房价不对等的工资,让民众感觉很……抓黄鳝为什么不犯法?抓鳝鱼本身又不违法,因为鳝鱼本身并不属于国家保护生物,也不是陆生野生动物不存在接触或者食用之后会被传染病毒性疾病,比如这次的肺炎疫情。何况中国人吃鳝鱼以及买卖鳝鱼的历史非常久远……背书的启示作文昨天的十五、十六自然段会背了吗?黄老师问。会啦!同学们异口同声地回答。说实话,嘴上说着会了,心里却掠过一丝丝慌张,老师该不会要一个一个检查吧?我不安地想。果然,老师说:那好,我……被忽略的拼图作文800字去年的年初,我与爸妈去了趟杭州,回来之前在一家店里买了副拼图,是梵高的《星空》,一共有1048块。我一直想着,是否有一天,我能把这拼图拼完,挂在家里的某面墙上。到家把它拆……告诉你,我很想你作文800字告诉你,我真的很想念你。曾经的我们那么亲密,那么亲近。可如今,你我二人却越走越远。今夜我们秉烛西窗,追溯曾经的你我。你不曾知道,我多么想念你如冬日暖阳般的微笑……武汉和广州都号称在校大学生数量居全国之首,到底哪个是第一呢?恢复全国高考至今,已历40年。在这跌宕起伏的40年中,高考让全国1亿多人上了大学,前30年3600万人左右,后十年6700万人左右。从全国范围看,武汉与北京、上海、广州、……西安游兵马俑800字作文西安游兵马俑800字作文暑假里我们在陕西参观了不得不看的ldquo;世界八大奇迹之一rdquo;mdash;mdash;秦陵兵马俑。秦陵兵马俑位于陕西省临潼向东5公里骊山……实用的感动母爱作文500字4篇在平凡的学习、工作、生活中,大家一定都接触过作文吧,作文是从内部言语向外部言语的过渡,即从经过压缩的简要的、自己能明白的语言,向开展的、具有规范语法结构的、能为他人所理解的外部……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网