Docker介绍及应用
施聪羽
edwardsbean@gmail.com
2014-05-24
 DevOps
 Docker简介
 Doker安装
 Demo:基本命令
 Demo:Flume部署
 坑
DevOps
Development & Operations
DevOps
 软件安装麻烦,系统环境不同,软件安装通过运维人员操作容易出现
问题,因为不提供ssh权限,导致调试不便。
 隔离性差,例如不同的开发人员如果在同一台主机环境下共享开发,
虽然是用户隔离,但端口如果不规范可能会冲突;同一个My...
DevOps
Docker简介
Doker安装
Demo:基本命令
Demo:Flume部署
Docker简介
Docker是什么?
Docker是一个开源的容器引擎,它可以快速,简单的创建轻量级、便
携式的、自给自足的、环境隔离的container(容器)。一个容器在开
发者的笔记本上builds和test成功,那么这个容器就可以成功...
Docker简介
Docker和VM的区别?
Docker简介
 Docker基本概念:image和container
Docker简介
标准的配置方法
每个 LXC "容器" 之间或许不兼容,但是 docker 采用了一种标准的配
置方法使得由不同 docker 创建出的 LXC 能够完全兼容。
基于应用
LXC 的定位是作为一种虚拟机的替代方案。虽然所有的软...
Docker简介
版本控制
Docker 实现了类似 git 的容器版本管理方法,并且能够进行增量更新。
组件复用
可以创建 base image 并将其保存在远程仓库 (repository) 中以便复
用,其他容器可以在其基础上进行修改并保...
DevOps
Docker简介
Doker安装
Demo:基本命令
Demo:Flume部署
未来
Docker安装
Centos:
yum install docker-io
DevOps
Docker简介
Doker安装
Demo:基本命令
Demo:Flume部署
Demo:基本命令
搜索基本镜像(docker search):
拉取镜像(docker pull):
Demo:基本命令
运行容器(docker run):
安装软件(docker run):
Demo:基本命令
查看刚才的容器( docker ps -l ):
注意:每次运行命令,都是新增一个容器
提交我们真正的容器,生成新的image:
之后我们就可以用最新的镜像,运行已安装了ping命令的容器
DevOps
Docker简介
Doker安装
Demo:基本命令
Demo:Flume部署
Demo:Flume部署
Flume开发者
测试阶段:
 java
 centos6.5
 ssh(线上部署后有用)
Demo:Flume部署
Flume开发者
测试阶段:
 创建Dockerfile:
FROM 192.168.253.149:5000/centos6.5+ssh+java
ADD flume.tar.gz /opt/flume
 打包成...
Demo:Flume部署
Flume开发者
测试阶段:
 创建Flume的拓扑配置文件:flume-example.conf
 编写Dockerfile用于创建运行的Flume镜像:
FROM flume-base
ADD flume-ex...
Demo:Flume部署
 运维人员拉取镜像,并运行:
Docker pull 192.168.253.149:5000/flume-1.0
Docker run –p 444:4444 –p 222:22 –d 192.168.253.14...
坑
 Dockerfile中的EXPOSE、docker run --expose、docker run -p
之间的区别
Dockerfile的EXPOSE相当于docker run --expose,提供container
之间的端口访问...
Upcoming SlideShare
Loading in …5
×

Docker介绍及应用

907 views

Published on

91服务端部门大数据组,Docker小组分享

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
907
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
13
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Docker介绍及应用

  1. 1. Docker介绍及应用 施聪羽 edwardsbean@gmail.com 2014-05-24
  2. 2.  DevOps  Docker简介  Doker安装  Demo:基本命令  Demo:Flume部署  坑
  3. 3. DevOps Development & Operations
  4. 4. DevOps  软件安装麻烦,系统环境不同,软件安装通过运维人员操作容易出现 问题,因为不提供ssh权限,导致调试不便。  隔离性差,例如不同的开发人员如果在同一台主机环境下共享开发, 虽然是用户隔离,但端口如果不规范可能会冲突;同一个Mysql如果 权限管理不好很有可能误删别人的数据  可移植性差,例如和生产环境不一致,开发人员之间也无法共享;更 严重的情况是当有新人入职时,通常需要又折腾一遍开发环境,无法 快速搭建
  5. 5. DevOps Docker简介 Doker安装 Demo:基本命令 Demo:Flume部署
  6. 6. Docker简介 Docker是什么? Docker是一个开源的容器引擎,它可以快速,简单的创建轻量级、便 携式的、自给自足的、环境隔离的container(容器)。一个容器在开 发者的笔记本上builds和test成功,那么这个容器就可以成功的批量 部署,运行在生产环境、VMs、OpenStack集群、公有云等
  7. 7. Docker简介 Docker和VM的区别?
  8. 8. Docker简介  Docker基本概念:image和container
  9. 9. Docker简介 标准的配置方法 每个 LXC "容器" 之间或许不兼容,但是 docker 采用了一种标准的配 置方法使得由不同 docker 创建出的 LXC 能够完全兼容。 基于应用 LXC 的定位是作为一种虚拟机的替代方案。虽然所有的软件都可以安 装在由 LXC 或者 docker 管理的容器中, 但是 docker 更倾向于在一个容器中运行一个应用。 自动构建 Docker 的容器是根据 dockerfile 构建的,你可以在构建 image 的 过程根据需要中运行任何命令和程序。 这意味着你不用调整现有的 image 构建方式,如果你使用 puppet, 你可以在生成容器的时候执行 puppet 命令。
  10. 10. Docker简介 版本控制 Docker 实现了类似 git 的容器版本管理方法,并且能够进行增量更新。 组件复用 可以创建 base image 并将其保存在远程仓库 (repository) 中以便复 用,其他容器可以在其基础上进行修改并保存为新的 image。 生态系统 因为 docker 越来越流行,有大量的方法能够将其轻易地集成到开发过 程中,比如可以采用统一的方法来构造用于持续集成的环境和开发环 境的容器。
  11. 11. DevOps Docker简介 Doker安装 Demo:基本命令 Demo:Flume部署 未来
  12. 12. Docker安装 Centos: yum install docker-io
  13. 13. DevOps Docker简介 Doker安装 Demo:基本命令 Demo:Flume部署
  14. 14. Demo:基本命令 搜索基本镜像(docker search): 拉取镜像(docker pull):
  15. 15. Demo:基本命令 运行容器(docker run): 安装软件(docker run):
  16. 16. Demo:基本命令 查看刚才的容器( docker ps -l ): 注意:每次运行命令,都是新增一个容器 提交我们真正的容器,生成新的image: 之后我们就可以用最新的镜像,运行已安装了ping命令的容器
  17. 17. DevOps Docker简介 Doker安装 Demo:基本命令 Demo:Flume部署
  18. 18. Demo:Flume部署 Flume开发者 测试阶段:  java  centos6.5  ssh(线上部署后有用)
  19. 19. Demo:Flume部署 Flume开发者 测试阶段:  创建Dockerfile: FROM 192.168.253.149:5000/centos6.5+ssh+java ADD flume.tar.gz /opt/flume  打包成Flume基本镜像,以供新人使用: Docker build –t flume-base .
  20. 20. Demo:Flume部署 Flume开发者 测试阶段:  创建Flume的拓扑配置文件:flume-example.conf  编写Dockerfile用于创建运行的Flume镜像: FROM flume-base ADD flume-example.conf /opt/flume/conf/flume-example.conf EXPOSE 4444 22 CMD run.sh  创建镜像flume-1.0: Docker build –t flume-1.0 .
  21. 21. Demo:Flume部署  运维人员拉取镜像,并运行: Docker pull 192.168.253.149:5000/flume-1.0 Docker run –p 444:4444 –p 222:22 –d 192.168.253.149:5000/flume-1.0  如需更新配置,或者临时修改bug,运维人员只需重复上面buzhou Flume运维人员 部署阶段:
  22. 22. 坑  Dockerfile中的EXPOSE、docker run --expose、docker run -p 之间的区别 Dockerfile的EXPOSE相当于docker run --expose,提供container 之间的端口访问。docker run -p允许container外部主机访问 container的端口  Docker只允许运行一条CMD命令,而且有继承性。比如有个镜像 base,Dockerfile中CMD启动ssh服务。基于镜像base的新镜像 redis的Dockerfile CMD启动redis服务。那么ssh服务就不会启动 了。要启动多个服务,可以通过CMD supervisor  Docker中好像不能创建用户。即使创建了用户,会有权限问题,比 如/etc/不能访问, bash-4.1$ whoami whoami: cannot find name for user ID 501  任何commit都会将以前的CMD命令清除。如:进入container,修改 一个文件之后commit,生成的新镜像丢失原来的CMD命令

×