admin管理员组文章数量:1794759
Docker培训课程
Docker培训课程 - 谈docker,chef,puppet,ansible,salt stack延伸
Docker training course - Discuss docker, chef, puppet, ansible, salt stack Hangout本文翻译自:www.slideshare/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 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
添加Docker repo到apt源列表,更新并安装LCX-Docker包sudo sh -c "echo deb get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"sudo apt-get updatesudo 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" # make sure the package repository is up to date RUN echo "deb archive.ubuntu/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 22CMD /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 + MySQLflux7 -- php +MySQLclient1 -- python + Cassandra (multi-tenant)client2 -- Ruby on Rails + MySQL + Redis
应用程序架构图
新员工/新笔记本电脑
Install Vagrantgit pull <code repository>devenv setupdevenv start
幕后:1.下载VBOX图像2.运行VM共享文件夹+暴露的端口+静态IP3.生成容器4.以正确的顺序启动容器和暴露正确的端口(DB ??)5.在/vagrant/log文件夹复制日志卷6.设置/etc/hosts指向VM7.打印URL来访问应用程序
调试流程
编辑代码(在你选择的编辑器,可以使用所有的别名和命令)
//重新启动服务器(可以使用麒麟实现自动化)devenv的负载
//检查日志在顶部/ logs文件夹
代码提交
devenv commit -t <tag>←进行调试后git push
幕后:1.提交所有Docker容器2.保存版本以供将来使用
QA
Jenkins polls the repo for pushes使用相同的脚本来运行使用容器测试
代码交付
现有的容器被销毁(可以更好)新的容器建成并开始
Chef recipe更新
devenv rebuilddevenv push
幕后:1.运行chef recipe创建新的容器2.提交容器到主注册表
添加/删除 服务/层改变devenv的脚本
版权声明:本文标题:Docker培训课程 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686976753a124593.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论