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

[经验分享] Docker培训课程

[复制链接]

尚未签到

发表于 2015-11-25 15:36:18 | 显示全部楼层 |阅读模式

Docker培训课程 - 谈docker,chef,puppet,ansible,salt stack延伸

  
Docker training course - Discuss docker, chef, puppet, ansible, salt stack Hangout
本文翻译自:
http://www.slideshare.net/Flux7Labs/docker-training-course-discuss-docker-chef-puppet-ansible-salt-stack-hangout
  注:saltstack 和 Puppet Chef 一样可以让你同时在多台服务器上执行命令也包括安装和配置软件
  
基本概念
  
Docker并不是Linux Container的替代品
  
  
命名空间Namespaces:
  
●隔离的第一级
●在一个容器进程中运行不能看到或影响容器外运行的其他进程
  
  
控制组Control Groups:
  
●LXC的主要组件
●资源计算和限制是关键的功能。
●重要的多租户平台:保证一致的正常运行时间和性能
  
  
LXCs
  
  LXCs是轻量级的。
  运行在同一台主机上的多个实例隔离
  共享单个内核,但他们可以消耗的数量资源的一组定义。
  不允许实例之间的干扰。
  
Docker术语
  
  Docker注册地Registry:
是一个Docker的注册表服务器,它帮助托管库和镜像,并交付

  Layer层:
当Docker装入根文件系统的堆叠每个文件系统

  Image镜像:
是一个只读层永远不会改变

  Container容器:
使用一个或多个镜像自足环境构建的。镜像可以依据已提交的container被创建

  Repository仓库:
设置本地Docker或注册服务器上的镜像

  
Docker文件
  
  Dockerfiles允许描述一次构建步骤,然后从源代码自动生成一个容器,它可以被看作是一个镜像的表示

帮助
  
●轻松构建镜像
●自动化和脚本创建镜像
  
  
Docker labs实验室
  
  安装Docker(Ubuntu的13.10)加入Docker库当地钥匙:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

  添加Docker repo到apt源列表,更新并安装LCX-Docker包
sudo sh -c "echo deb
http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker

  验证安装
sudo docker run -i -t ubuntu /bin/bash

  
docker pull ubuntu:精确
  
命令: docker pull ubuntu:12.04
用途:拉Ubuntu的LTS 12.04精确的基影像
  
  
Docker run
  
选择一个模式来运行Docker容器

运行背景/分离

  
1.容器不监听
2. IO是通过网络或共享做的
  
运行前景
  
1.默认模式
2.控制台上连接到进程的标准输入,标准输出,标准错误
  
  
运行交互式
  
1.需要持久的标准输入
  
  
Docker运行ssh
  
  Dockerfile在一个容器建立sshd服务
# sshd
#
# VERSION 0.0.1
FROM ubuntu MAINTAINER Thatcher R. Peskens "
thatcher@dotcloud.com"
# make sure the package repository is up to date
RUN echo "deb
http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update RUN apt-get install -y openssh-server
RUN mkdir /var/run/sshd RUN echo 'root:screencast' |chpasswd
EXPOSE 22
CMD /usr/sbin/sshd -D


Docker run(端口转发)

  
  自动映射所有暴露的端口到主机:
命令:docker run -P <imageid>

  端口绑定到主机接口
命令:docker run -p [([<host_interface>: [host_port]])|(<host_port>):] <container_port>[/udp] <image> <cmd>

  
docker run (卷共享)
  
  创建容器用2个卷
  命令:docker run -v /var/volume1 -v /var/volume2 DATA busybox true
  Mount数据卷到应用程序容器
命令:docker run -t -i -rm -volumes- from DATA -name client1 ubuntu bash

  
Docker diff
  
命令: docker diff CONTAINER
用途:列出在一个容器中的文件系统的变化,文件和目录
  
  
Docker开发工作流程
  
  应用程序:
VyScale -- python flask + MySQL
flux7.com -- php +MySQL
client1 -- python + Cassandra (multi-tenant)
client2 -- Ruby on Rails + MySQL + Redis

   DSC0000.jpg
  应用程序架构图
  
新员工/新笔记本电脑
  
Install Vagrant
git pull <code repository>
devenv setup
devenv start

  幕后:
1.下载VBOX图像
2.运行VM共享文件​​夹+暴露的端口+静态IP
3.生成容器
4.以正确的顺序启动容器和暴露正确的端口(DB ??)
5.在/vagrant/log文件夹复制日志卷
6.设置/etc/hosts指向VM
7.打印URL来访问应用程序

  
调试流程
  
  编辑代码(在你选择的编辑器,可以使用所有的别名和命令)
  //重新启动服务器(可以使用麒麟实现自动化)
devenv的负载

  //检查日志在顶部/ logs文件夹
  代码提交
  devenv commit -t <tag>←进行调试后git push
  幕后:
1.提交所有Docker容器
2.保存版本以供将来使用

  
QA
  
  Jenkins polls the repo for pushes
使用相同的脚本来运行使用容器测试

  代码交付
  现有的容器被销毁(可以更好)
新的容器建成并开始

  Chef recipe更新
  devenv rebuild
devenv push

  幕后:
1.运行chef recipe创建新的容器
2.提交容器到主注册表

  添加/删除 服务/层
改变devenv的脚本

  

运维网声明 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-143533-1-1.html 上篇帖子: 解决ansible官网访问特别慢的问题 下篇帖子: Ansible 之 lineinfile
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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