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從入門到實踐