Docker简介:
Docker 是个进程级的轻量化虚拟机,从狭义上来讲就是一个进程,从广义上来讲是一个虚拟容器,或者叫应用容器( Application Container )
Docker 中有三个核心概念:Image、Container、Repository。
- Image:和 Windows 的那种 ISO 镜像相比,Docker 中的镜像是分层的,可复用的,而非简单的一堆文件迭在一起(类似于一个压缩包的源码和一个 Git 仓库的区别)。
- Container: 容器的存在离不开镜像的支持,他是镜像运行时的一个载体(类似于实例和类的关系)。依托 Docker 的虚拟化技术,给容器创建了独立的端口、进程、文件等“空间”,Container 就是一个与宿机隔离 “容器”。容器可宿主机之间可以进行 port、volumes、network 等的通信。
- Repository: Docker 的仓库和 Git 的仓库比较相似,拥有仓库名、tag。在本地构建完镜像之后,即可通过仓库进行镜像的分发。常用的 Docker hub 有 https://hub.docker.com/ 、 https://cr.console.aliyun.com/ 等。
Docker相对于VM有以下几个优点:
- 启动速度快,容器启动本质就是一个开启一个进程而已,因此都是秒启,而 VM 通常要更久
- 资源利用率高,一台普通 PC 可以跑成百上千个容器,你跑十个 VM 试试。
- 性能开销小, VM 通常需要额外的 CPU 和内存来完成 OS 的功能,这一部分占据了额外的资源
总之Docker和传统的虚拟机有着非常大的区别,下面就来部署一台Docker研究研究
0:环境检查
安装之前,我们首先确保自己的 Linux 系统内核版本高于3.10,并且系统是64位,才能体验 Docker 。
通过 uname -ir 查看是否满足要求。
>>uname -ir
1:替换yum源
自带的源速度太慢,所以我们需要换一下(这里更换成阿里云的源)
>>yum install -y wget #安装wget工具,如果机器已安装可以忽略
>>wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
>>yum clean all
>>yum makecache
#如果安装失败,可以尝试先更新系统yum update -y
2:安装与配置Docker
安装方式有很多种,本文介绍的是YUM方式
>>yum install -y docker #yum 方式安装docker
>>vi /etc/sysconfig/docker
添加一行:OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'
>>systemctl restart docker #重启服务
笔者在这一步踩了个坑:restart一直报错,无法启动docker,错误提示:
Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel....d=false)
经过一番百度,最终解决方法:
此处意思是linux的内核中的SELinux不支持 overlay2 graph driver ,解决方法有两个,要么启动一个新内核,要么就在docker里禁用selinux,通过配置 --selinux-enabled=false,
>>vi /etc/sysconfig/docker
保存,然后可以正常启动
测试:
>>docker pull hello-world
>>sudo docker run hello-world
出现“Hello From Docker”表示Docker正常运行
常用命令:
1.生命周期管理
docker [run|start|stop|restart|kill|rm|pause|unpause]
a.docker start/stop/restart id
b.docker run
2.常用操作运维
docker [ps|inspect|top|attach|events|logs|wait|export|port]
3.镜像仓库
docker [login|pull|push|search]
4.本地镜像管理
docker [images|rmi|tag|build|history|save|import]
5.其他命令
docker [info|version]
3:在Docker上部署OwnCloud
我们已经部署完成了Docker,现在来试试部署一个OwnCloud服务
3.1:拉取OwnCloud镜像
>>docker pull owncloud
拉取中///
拉取完成后输入:>>docker images
可以查看本机上有的镜像
3.2:部署容器
>>docker run -d -p 9090:80 owncloud
#-d 守护容器,就是后台运行,退出命令窗口容器也不会停止
#-p 宿主机端口和容器端口映射
#9090:80 宿主机端口:容器公开的端口
3.3:测试
在浏览器中输入 IP:9090
可以看到服务已成功运行
停止服务:
>>docker ps #查看运行中的dock进程
现在可以看到正在运行的镜像只有owncloud这一个
>>docker stop 19d009f7d305 #19d009f7d305为owncloud的container id
再次键入 docker ps 可以看到owncloud已经不在运行了
---END---
参考:http://www.runoob.com/docker/docker-tutorial.html
微信公众号:itfun
原文地址:http://blog.51cto.com/mikeyoo/2130995