try docker
更新日期:
docker 初体验
感受一下docker,介绍一下如何从无到有的利用docker来,建立自己的镜像大军
简介
docker是2014年最值得关注的一个东西,跟当年的github一样,呵呵,废话少说。Go ~
docker跟vmware类似,但docker更轻量,感性认识一下
引用CSDN中有人回答如下
“docker做到了PAAS即平台即服务,docker在64位linux上使用的是lxc内核虚拟化也就是轻量级的虚拟化,与VM相比不需要对硬件进行仿真就可以共享跟主机一样的操作系统,并且有AUFS和lXC来虚拟化,加入一个ubuntu的镜像是265MB,你要再VM主机新建1000个就需要265000MB内存,但是docker共享容量也就需需要256多一点,如果你在linux上跑VMware相信你会看主机内存的消耗是比较大的,一个亚马逊EC2 512MB内存单核的云主机开5个docker无压力,你要是跑5个vmware那可费劲了”通俗理解
docker其实就是运行在 linux 下的一个进程,这个进程可以管理很多个“容器”。
如果非要跟java类比一下,这样可能更容易理解
- docker相当于jvm
- docker“镜像”,相当于一组java文件
- 而运行在docker上的“容器”,相当于在 jvm 下运行的 文件组
- 托管镜像的地方,就是docker服务器仓库。类似github托管代码一样。
现在有那么点儿意思了吧!来看个实例吧
从无到有
1.先在 64 位linux系统下(以centos为例),安装docker前置依赖。
1 | yum install epel-release |
2.安装docker
1 | yum install docker-io |
3.启动docker服务
1 | sudo service docker start |
4.查看状态或版本 docker version 或 docker info
1 | [root@yuanxiaolong ~]# docker version |
5.获取centos 6的镜像 docker pull centos:centos6
1 | [root@yuanxiaolong ~]# docker pull centos:centos6 |
6.查看本地镜像 docker images,此时会有一个centos的镜像 tag是centos6
1 | root@yuanxiaolong ~]# docker images |
7.运行一下,看是否正常,docker run 68edf809afe7 /bin/echo hello world 或 docker run centos:centos6 /bin/echo hello world
1 | [root@yuanxiaolong ~]# docker run 68edf809afe7 /bin/echo hello world |
8.再次确认,进入交互模式sudo docker run -i -t centos:centos6 /bin/bash
1 | [root@yuanxiaolong ~]# docker run -i -t centos:centos6 /bin/bash |
9.(非必须)将想要保存的镜像,上传到 Docker Hub ,首先你需要有一个账户,在 这里申请
上传前,我的账户
9.1先对要上传的images,打上个tag
1 | [root@yuanxiaolong ~]# docker images |
9.2上传镜像,输入用户名、密码、邮箱,即到你的账户里
1 | [root@yuanxiaolong ~]# docker push yuanxiaolong/centos6 |
上传后
构建自己的环境
重复pull自己想要的镜像,可以在 这里搜索
然后 docker pull 名称:版本tag ,获取到本地,下面就是我个人在VPS上安装的镜像
1 | [root@yuanxiaolong ~]# docker images |
FAQ
Q: 如果pull错了版本的镜像怎么办?
A: 不用担心,可以用删除镜像 命令
docker rmi centos:centos6 (如果镜像正在运行,则需要-f 来强制删除)
Q: 每个在docker上运行的容器,都有自己独立的IP么?
A: 看起来是的,我进入2个不同的镜像,看到ip是不一样的,一个是172.17.0.9,一个是172.17.0.10
1 | [root@yuanxiaolong ~]# docker run -i -t centos:centos6 /bin/bash |
- 更多内容