Docker: 开源的容器虚拟化平台,虚拟机能作的Docker都能作,并且速度更快。html
Docker的核心思想有三点:java
在对Docker有一个大概的认识后再来看Docker的内部:mysql
Docker 镜像 - Docker imageslinux
Docker 仓库 - Docker registeriesweb
Docker 容器 - Docker containerssql
镜像就是一系列的文件,每一层的镜像都是只读的,仓库是用来保存镜像的,容器的本质是进程,镜像能够理解为容器的文件系统,一个Docker容包含了全部的某个应用运行所须要的环境。每个 Docker 容器都是从 Docker 镜像建立的。docker
安装过程见官网,安装完成后键入命令,docker version,可获取以下内容:数据库
安装完成后,对docker的镜像进行下载,也就是docker pull image 命令,最后的image是由docker官网提供的镜像名称,由于国情的缘由,国内下载 Docker HUB 官方的相关镜像比较慢,我在ubuntu16系统下,镜像没法从官网直接pull ,能够经过daocloud.io得到本身的加速器。具体操做以下:ubuntu
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://990a497a.m.daocloud.io tomcat
配置Docker Hub Mirror
sudo echo "DOCKER_OPTS=\"$DOCKER_OPTS --registry-mirror=http://xxx.m.daocloud.io\"" >> /etc/default/docker service docker restart
将xxx替换为在 DaoCloud 上注册后,专属生成的Mirror地址连接名。 该脚本能够将 --registry-mirror 加入到Docker配置文件 /etc/defaults/docker中。
Docker Hub Mirror使用不须要任何附件操做,就像这样下载官方Ubuntu镜像
docker pull ubuntu
最终问题解决。
而后就能够开始练习docker的一些基本操做了,一些基本的操做能够参考这篇博客http://blog.csdn.net/zjin_hua/article/details/52041757。
本身制做完成的镜像能够上传至私有仓库,在这里我使用了阿里云的私有仓库,按照阿里云的提示步骤将本地镜像上传至私有仓库。
镜像上传成功后结果以下:
对docker仓库,镜像,容器等有了基础的认识后,开始在docker中运行本身的web项目,如下实例中的web项目来自于我本身开发的基于SSH框架的java web项目。
from tomcat #第一条指令必须是FROM,其后能够是各类镜像的操做指令
MAINTAINER 全部者名字 邮箱 #指定镜像全部者
ADD classnet.war /usr/local/tomcat/webapps/ #将web项目添加至tomcat工做目录下,classnet.war是项目的名称,须要和dockerfile在同一个目录下
CMD ["catalina.sh", "run"] #在容器启动时启动tomcat服务器
详细操做可参考这篇博文https://yq.aliyun.com/articles/6894,其中涉及到maven的安装,在配置maven项目时出现 [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?经查证后发现是jdk版本的问题Linux系统中自带jdk,版本为open版,更新为oracle版后解决问题。可参考https://zhidao.baidu.com/question/332067219210122805.html替换jdk版本。
另外补充关于学习时常和资料的问题,了解官网内容加基础概念学习用了两天时间,在docker安装时,由于我的没有linux的基础,又另外学习linux相关内容,花费大约三天时间,在以后练习镜像与容器相关操做以及web容器化用了三天时间。参考书籍有docker从入门到实践