设为首页 收藏本站
查看: 1040|回复: 0

[经验分享] docker的基本概念

[复制链接]

尚未签到

发表于 2017-12-6 10:01:06 | 显示全部楼层 |阅读模式
docker的基本概念
  提到docker容器化技术,不由自主就会想到虚拟机技术。容器化技术和虚拟机有哪些区别呢

  • 容器和宿主机共享kernel,容器的kernel版本与宿主机一致
  • 虚拟机能够模拟输入输出,让guest os能够起来,也叫hypervisor,启动很慢
  • docker容器化不模拟输入输出,只是做宿主机输入输出的搬运工。(前提镜像和宿主机架构一致,x86上不能模拟arm)
  • 虚拟机有独立的文件系统,进程系统,内存系统,而容器只是做了隔离。
  Docker的架构图
DSC0000.jpg

私服/mirror
  搭建私服镜像的操作方式
  私服用来存放和拉取程序的打包image
  mirror用来拉取网络上的docker image:
  DaoCloud
  阿里云docker
network
host模式
  host 模式,在run镜像时以net=host启动,容器和宿主机共用network space,不会虚拟network space。与宿主机共用ip,性能较优。
container模型
  该模型是container之间共享一个network space。
bridge模式
  bridge模式的容器,每个皆有独立的network space,有独立的ip,并将一个宿主机上的容器链接到一个虚拟bridge上。
overlay模式
  overlay模式是一种跨宿主机的容器通信方案。二层VLAN也可以实现跨节点的容器之间网络互通,但是需要改造现有网络,二层vlan支持的节点有限制,不超过4000,另外一个广播数据,在整个集群内都会传播,浪费带宽。overlay恰恰是针对以上问题,孕育而生的解决方案,约定通信协议,把二层报文进行封装分发,报文中采用隔离的标识位,突破节点限制。
  overlay创建的要素:

  • 存储服务(ectd/consul/zk);
  • swarm集群。master和agent token注册。swarm和consul的配合使用;
  • 创建overlay类型的network;
  • 启动容器指定overlay网络。
container net model自定义网络模型
  docker 发布了libnetwork项目,并退出了CNM模型,方便二次开发。
none模式
  container容器优独立的network space,但是没有网卡,需要手动配置网卡,ip
image和container
  基本介绍
image
  镜像是一堆只读层的集合,但是对外是一个统一的文件系统
  docker镜像,根据镜像的需要,base镜像要小。RUN的命令能合成一行,不要拆成多行,每一行都会加一层layer。
  另外安装完,要删除程序包。
  docker image trees可以查看镜像的继承关系。
  当base镜像不断升级,子镜像如何切换不同的父镜像,修改image的graph的json信息和aufs的镜像层次描述文件,这是个小tricky,哈哈。
container
  container 是镜像的启动实例。从结构上与image类型,但是最上层多了一个可读写层。
Dockerfile
  是用来构建镜像的配置文件,文件使用说明
  注意几点:

  • ENV 命令配置的变量,只生效于 docker exec进行
  • CMD和ENTRYPOINT,相互覆盖。
  • CMD命令中,命令不支持ENV变量
  • CMD不支持多条命令。
  • CMD可以用sh -c 的shell进程来执行多条命令,命令之间采用分号隔开。同事支持ENV环境变量
端口映射及磁盘映射
  容器中的端口可以用 -p 宿主机端口:容器端口 映射出来。
  容器文件持久化,可以参数 -v来映射宿主机上, -v 宿主机文件夹:容器文件夹。
  通过目录映射也可以配置信息共享。
container编排
  利用docker-compose可以实现docker容器的集群启动。需要编写compose yaml文件。
  可以参考compose的文件格式。
常用命令
  docker命令:http://blog.chinaunix.net/uid-10915175-id-4443127.html
  docker-compose命令:http://blog.csdn.net/zhiaini06/article/details/45287663
安装
  环境:centos 7
docker-engine安装
  sudo yum -y remove docker docker-common container-selinux
  sudo yum -y remove docker-selinux
  sudo yum install -y yum-utils
  sudo yum-config-manager --add-repo https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo
  sudo yum makecache fast
  yum -y install docker-engine
  docker --version
docker-compse安装
  yum -y install epel-release
  yum -y install python-pip
  pip --version
  pip install docker-compose
增加私服
  编辑 /usr/lib/systemd/system/docker.service
  --insecure-registry 172.16.74.150
  修改docker配置后,重启
  systemctl daemon-reload
  service docker restart

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-421105-1-1.html 上篇帖子: 如何自定义容器网络?- 每天5分钟玩转 Docker 容器技术(33) 下篇帖子: MySQL 使用 SSL 连接(附 Docker 例子)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表