Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1366758
  • 博文数量: 244
  • 博客积分: 3321
  • 博客等级: 中校
  • 技术积分: 2704
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-26 08:17
个人简介

微信公众号:杰夫弹弹看

文章分类

全部博文(244)

文章存档

2018年(4)

2017年(32)

2016年(25)

2015年(28)

2014年(27)

2013年(34)

2012年(25)

2011年(30)

2010年(39)

分类: 虚拟化

2014-10-01 15:15:48

Docker作为另一类虚拟化技术-容器方案,已经吸引了越来越多的开发和关注,docker在各大操作系统厂商-Ubuntu,Redhat等都提供了很好的集成,更给力的是docker的官方的文档写的非常清晰易懂。下文以ubuntu 14.04为例,对docker的CLI进行简单的学习,


Docker Hub上提供了大量image可以进行测试练习,所以我们随便选一个

1. 启动进入一个shell,
 
 sudo docker run  -i -t  --name web training/webapp /bin/bash

2. Detach 上面的container
 
  CTRL-p CTRL-q

3. Attach上面的container

 sudo docker attach web

4. 以background方式运行container
 
 sudo docker run  -d -P  training/webapp python app.py
 
  其中 -P 是将container的ports暴露给对于主机所有的interface,比如上面的启动的container,我们可以通过sudo docker ps 查看运行的端口,
    f3ca5cd8c307        training/webapp:latest     /bin/bash     24 minutes ago      Up 22 minutes       0.0.0.0:49154->5000/tcp   web  
这样,如果Host有多块网卡,每个网卡有不同的ip,所有的ip:49154 都可以访问这个web app了。     

5.  Docker的数据管理及使用       

 docker的Data volumes功能可以
 (1)对container进行方便的volume创建,
 (2)对host的目录进行快捷的mount到container
 (3)不同container之间通过volume进行数据共享
 (4)对data volume进行方便的backup,restore和migrate

例如:
  (1-1) 创建一个名字是dbdata的container包含dbdata的volume
 sudo docker run -i -t -v /dbdata --name dbdata training/postgres /bin/bash
  
 (1-2) 对上面的container的/dbdata挂载到新的container db1上
 sudo docker run -i -t  --volumes-from dbdata --name db1 training/postgres /bin/bash


 backup 和 restore
 (1-1) 首先启动一个新的container来对dbdata的data volume数据打包备份到host的当前目录下
    sudo docker run --volumes-from dbdata -v $(pwd):/backup training/postgres tar cvf /backup/backup.tar /dbdata
 (1-2) 创建一个用来restore上面数据的container,名字是dbdata2
    sudo docker run -v /dbdata --name dbdata2  training/postgres /bin/bash
 (1-3) un-tar到新创建的container的data volume中
    sudo docker run --volumes-from dbdata2 -v $(pwd):/backup training/postgres tar xvf /backup/backup.tar
很明显,上面的几个步骤通过Host来实现了文件的转存。


作为外延,读者可以参考更多的资料:
1. Docker的技术预览
   
2. Docker的源码分析
    
3. Docker的CLI
    
     
     
阅读(4456) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~