《Docker技术入门教程.pptx》由会员分享,可在线阅读,更多相关《Docker技术入门教程.pptx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Docker技术分享什么是Docker镜像容器仓库数据卷网络练习:搭建第一个Docker镜像业务镜像&代码什么是DockerDocker是一个开源的应用容器引擎,让开发者可以打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上Go语言实作,加入了Linux基金会,遵从Apache2.0协议,原始码在GitHub上进行维护在LXC的基础上Docker进行了进一步的封装,让使用者不需要去关心容器的管理,使得操作更为简便。使用者操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单Docker与VM区别安装DockerCentos7$yuminstalldockery$
2、chkconfigdockeron$servicedockerstartUbuntu1404$sudoapt-getupdate$sudoapt-getinstalllinux-image-generic-lts-trusty$sudoreboot$curl-sSLhttps:/ Docker使用了Linux的Namespaces技术来进行资源隔离,如PIDNamespace隔离进程。一个NetworkNamespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的NetworkNamespace隔离。一个Docker容器一般会分配一个独立的NetworkNamesp
3、ace。host模式下,容器将不会获得一个独立的NetworkNamespace,而是和宿主机共用一个NetworkNamespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。Host模式使用场景服务端与客户端进行通信的端口不能提前指定,只能临时协商,例如FTP服务信源输入、结果数据输出有物理网卡的限制,即容器内部需要绑定物理网卡信息,例如编码器、源服务器其他一些只能在host模式下才能正常工作的场景,例如容器内部需要挂载外部nfs路径的场景等Host注意事项安全性,能够连接到物理主机上的外部主机,均能够连接到容器中(桥接模式指定网卡,只有与网卡相同的VLAN
4、的主机才可连接到容器中)端口资源占用网络|NAT桥接Docker默认的网络设置,此模式会为每一个容器分配NetworkNamespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上向外通信:IP包首先从容器发往自己的默认网关docker0,包到达docker0后,也就到达了主机上。然后会查询主机的路由表,发现包应该从主机的eth0发往主机的网关,接着包会转发给eth0,并从eth0发出去。数据包相当于做SNAT转换,将源地址换为eth0的地址。这样,在外界看来,这个包就是从eth0上发出来的,Docker容器对外是不可见的向内通信主机eth0收到的目的端口为port1的数
5、据流量进行DNAT转换,将数据流量发往对应容器的port2端口NAT桥接适用场景桥接模式是Docker默认的网络连接方式,几乎适用于所有的应用桥接模式有网络性能的损耗,不适用于对网络性能要求较高的应用(比如nginx)NAT机制导致无法使用容器IP进行跨服务器通讯若容器需要对外提供服务,桥接模式需要在宿主机之上开放服务端口,这在部署上势必带来一些不便,例如容器无法漂移,NAT模式难于理解等等适用于某些特殊场景,例如桥接与HOST模式配合,来搭建对信源、输出有需求,且环境长期不会变的的场景练习:搭建第一个Docker镜像1、启动镜像$dockerrun-ticentos/bin/bash2、进入
6、容器,安装passwd$yuminstallpasswd-y3、修改Centosroot密码$passwd4、安装opensshyuminstallopenssh-server-y5、生成公钥、私钥ssh-keygen-trsa-f/etc/ssh/ssh_host_rsa_keyssh-keygen-trsa-f/etc/ssh/ssh_host_ecdsa_keyssh-keygen-trsa-f/etc/ssh/ssh_host_ed25519_key6、编写启动脚本vi/run.sh#!/bin/bash/usr/sbin/sshd-Dchmod+x/run.sh7、修改SSH默认端口
7、vi/etc/ssh/sshd_configPort2228、退出容器,保存镜像dockercommit378ab88a06c8centos_ssh9、启动容器dockerrun-net=host-dcentos_ssh/run.sh10、远程连接测试ssh192.168.31.203-p222更加具体的细节请查看:http:/业务镜像&代码业务镜像=代码+运行环境在不改变当前开发习惯基础之上,如何实现这个“+”代码库:Svn、Cvs、Git共同点,均有一个构建包路径运行环境:C、JAVA、Jboss、基础Linux工具业务镜像=基础环境镜像+代码构建包+自动部署脚本(Dockerfile)谢谢!