• 1. Docker实战培训主讲人:陈力、张振兴、魏星 日期:2014-11-4 TD RNC无线软件部
  • 2. Docker工作流程
  • 3. 实战项目 Docker Registry Virtual Desktop Jenkins over Docker
  • 4. Docker Registry项目介绍 docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push、pull命令从公有或者私有仓库下载、上传镜像; Docker Registry私有服务器用于保存管理我们的私有镜像。
  • 5. Docker Registry项目链接 https://github.com/docker/docker-registry
  • 6. Docker Registry项目部署 1、从docker hub上 pull镜像到本地,选择registry:0.8.1 2、创建镜像目录 本地镜像目录 /opt/docker-image/registry 本地镜像配置目录 /opt/docker-image/registry-config
  • 7. Docker Registry项目部署 3、本地配置文件 /opt/docker-image/registry-config/config.yml ,根据官网提供的config_sample.yml进行修改。( https://github.com/docker/docker-registry/blob/master/config/config_sample.yml ) 主要修改的就是本地存储的目录。
  • 8. Docker Registry项目部署 4、创建Registry container -v /opt/docker-image命令将本地的目录/opt/docker-image绑定到container的/opt目录,目的是防止container重启后数据丢失。 -e DOCKER_REGISTRY_CONFIG=/opt/registry-config/config.yml设置container的环境变量。 -p container到host的端口映射
  • 9. Docker Registry项目部署 5、Registry container里保存的images
  • 10. Docker Registry项目部署 6、从Registry container里push镜像
  • 11. Docker Registry项目部署 7、从Registry container里pull镜像
  • 12. Virtual Desktop项目介绍 该项目实现的是一个基于浏览器的通过VNC服务进行访问的ubuntu桌面系统。
  • 13. Virtual Desktop项目链接 https://github.com/fcwu/docker-ubuntu-vnc-desktop
  • 14. Virtual Desktop项目部署 1、从DOCKER HUB上将镜像pull到本地;
  • 15. Virtual Desktop2、创建container
  • 16. Virtual Desktop3、浏览器访问桌面系统
  • 17. 基于docker的TDRNC CI架构
  • 18. 基于docker的TDRNC CI架构
  • 19. 基于docker的TDRNC CI架构
  • 20. 基于docker的TDRNC CI架构设计目标:虚拟化、易维护、易部署 设计过程要点: 1、虚拟机应可直接映射成物理机,完成jenkins的Master与Slave职责,应避免对宿主机的依赖。 2、jenkins job逻辑层次在虚拟机之上,应合理部署在虚拟机上,避免出现将jenkins job等同于docker虚机逻辑层次不清的想法。 3、在M-S架构设计中,应避免各Slave 虚拟机之间的相互依赖。 4、以编写Dockerfile的标准方式生成image;以Fig等工具完成一键式部署
  • 21. 基于docker的TDRNC CI架构ubuntu 14.04Jenkins Servervimjenkinsftpssh......gcc 4.8.3compilevimftpsshcodewine......masterslave
  • 22. 基于docker的TDRNC CI架构Jenkins Server Dockerfile# This is jenkins on Ubuntu14.04FROM ubuntu:14.04 MAINTAINER zhangzhenxing ENV DEBIAN_FRONTEND noninteractive RUN echo "export http_proxy=proxysh.zte.com.cn:80" >> ~/.bashrc RUN echo "nameserver 10.67.1.9" >> /etc/resolv.conf RUN echo "Acquire::http::proxy \"http://proxysh.zte.com.cn:80/\";" >> /etc/apt/apt.conf ...... # install dependancies RUN apt-get -y build-dep pure-ftpd# build from source RUN mkdir /tmp/pure-ftpd/ && \ cd /tmp/pure-ftpd/ && \ apt-get source pure-ftpd && \ cd pure-ftpd-* && \ sed -i '/^optflags=/ s/$/ --without-capabilities/g' ./debian/rules && \ dpkg-buildpackage -b –uc ...... ADD jdk-8u20-linux-x64.tar.gz /opt/ ADD jenkins.tar.gz /tmp ADD sendmail.py /tmp/ ADD AllMailList.txt /tmp/ ADD mail.zte /etc/
  • 23. 基于docker的TDRNC CI架构...... # install tclsh RUN apt-get install -y --force-yes tclsh RUN apt-get install -y --force-yes expect # install svn RUN apt-get install -y --force-yes subversion ...... ADD jdk-8u20-linux-x64.tar.gz /opt ADD/ x86_gcc4.1.2_glibc2.5.0_V2.4P9.tar.bz2 /opt/zte ADD x86_64_gcc4.1.2_glibc2.5.0_V2.06.20.tar.bz2 /opt/zte ...... # set locale RUN apt-get install -y --force-yes locales RUN echo "LANG=\"en_US.UTF-8\"" > /etc/default/locale && echo "LANGUAGE=\"en_US:en\"">> /etc/default/locale RUN locale-gen en_US.UTF-8 WORKDIR / ENTRYPOINT ["/startup.sh"]Compile Dockerfile
  • 24. 基于docker的TDRNC CI架构masterresult_procinc_update_Trigdcmp compiledcmp_daily_updatedcmp_inc_updatedcmp_compileomp compileomp_daily_updateomp_inc_updateomp_compileccmp compileccmp_daily_updateccmp_inc_updateccmp_compile
  • 25. 基于docker的TDRNC CI架构
  • 26. (本页无文本内容)