在OS X和Windows上安裝需要使用Boot2Docker,這是一個極小的虛擬機,同時提供了一個包裝版本對該虛擬機進行管理;該虛擬機運行一個守護進程,並在OS X和Windows上提供了一個本地的Docker守護進程;Docker的客戶端工具docker可以作爲這些平臺的原生程序安裝,並連接到Boot2Docker虛擬機中運行的Docker守護進程;
>> Docker Windows中下載、安裝、配置
-
Docker官網:
https://www.docker.com/get-docker
,點開,往下拉:
-
選擇DockerToolbox下載:
-
雙擊安裝:
-
全選,下一步:
-
選前三個,下一步:
-
安裝三個
-
finish
-
桌面出現三個圖標:
-
驗證安裝:
雙擊“Docker Quickstart Terminal”
;啓動一個終端窗口,自動執行腳本獲取boot2docker.iso到本地路徑“C:\Users\zhaobaolong\.docker\machine\machines\default”
-
驗證出錯:
-
重啓電腦,按F1 ,選擇 security --> intel Virtualization Technology --> enable
-
雙擊ocker Quickstart Terminal,成功
-
$ docker run hello-world
參考鏈接: http://blog.csdn.net/qq2712193/article/details/54576313
>> Docker加速鏡像拉取
使用國內倉庫鏡像服務器來進行鏡像的拉取:
- 國內DaoCloud鏡像地址:https://www.daocloud.io/
- 打開鏈接,註冊登錄,點擊加速器,複製Windows下的地址;
- 修改:
/etc/default/docker
- 命令行下 vi進入目錄:
vi /etc/default/docker
- 添加:
DOCKER_OPTS="--registry-mirror="http://ba08868d.m.daocloud.io"
(第二步複製的地址) - 重啓docker守護進程
>> Docker運行nginx鏡像
從倉庫拉取鏡像:(library表示鏡像是從docker官網鏡像中心同步過來的),點開復制下載地址到命令行執行
docker images
列出本地鏡像
docker ps
列出啓動的容器
docker pull hub.c.163.com/library/nginx:latest
拉取nginx鏡像
docker exec -it name/id
進入容器內部,exit退出內部;
注意: 瀏覽器訪問localhost:port
時,無法訪問到容器端口對應的服務,
解決Windows下無法對docker容器進行端口映射的問題:
在安裝了一個Windows下安裝了docker,並嘗試在其中運行Nginx、owncloud等服務,但映射完畢之後,在主機的瀏覽器中,打開localhost:port無法訪問對應的服務。
The reason you’re having this, is because on Linux, the docker daemon (and your containers)
run on the Linux machine itself, so “localhost” is also the host that the container
is running on, and the ports are mapped to.
so only the docker client is running on your Windows machine,
but the daemon (and your containers) run in a VirtualBox Virtual Machine, that runs Linux.
原來,docker是運行在Linux上的,在Windows中運行docker,實際上還是在Windows下先安裝了一個Linux環境,然後在這個系統中運行的docker。也就是說,服務中使用的localhost指的是這個Linux環境的地址,而不是我們的宿主環境Windows。我們可以通過命令docker-machine ip default
找到這個Linux的ip地址,一般情況下這個地址是192.168.99.100,然後在Windows的瀏覽器中,輸入這個地址,加上服務的端口即可啓用了。
>> 製作自己的鏡像-Jpress
-
dockerfile文件:告訴docker怎樣製作自己的鏡像,製作鏡像的每一步操作分別是什麼;
-
docker build
:寫好dockerfile之後,使用docker build命令來執行dockerfile裏面描述的每一件事情,最終構建出docker鏡像; -
Jpress :http://jpress.io/ 使用一個開源的Javaweb應用,在此基礎上製作自己的鏡像;
>> 製作步驟:
-
從官網下載Jpress:
http://jpress.io/
,放在與dockerfile文件一個文件夾下就可以;
-
https://github.com/JpressProjects/jpress/tree/alpha/wars
-
從網易鏡像中心下載Tomcat鏡像作爲Javaweb程序的基礎鏡像;
https://c.163.com/hub#/m/repository/?repoId=3105
,下載Docker版本;因爲Tomcat的運行需要用到Java,soTomcat這個鏡像 是包含JDK的;
-
mkdir dockerfile存放目錄
-
cd 目錄
-
vi dockerfile
進入vi (visual interface屏幕編輯器,Linux系統常用的文本編輯器),編輯dockerfile文件內容: -
from :指定鏡像繼承自哪個基礎鏡像(基礎鏡像就相當於java中的基礎類);因爲程序是Javaweb端的程序,所以就需要用到Tomcat,so從Tomcat作爲基礎鏡像開始自己的鏡像製作;
-
maintainer:鏡像的所有者;包括所有者的名字,聯繫方式等;(可以不寫)
-
copy:將本地一個文件(Javaweb的war包)拷貝到Tomcat的webAPP文件夾下,Tomcat啓動的時候就可以識別這個web應用;或者copy一個目錄;
from hub.c.163.com/library/tomcat
MAINTAINER zhangxuejiao [email protected]
COPY jpress.war /usr/local/tomcat/webapps
編輯完vi 按Esc --> :wq --> 回車;/usr/local/tomcat
>>運行自己的鏡像-Jpress
-
Tomcat也是一個服務,需要對外提供端口;
-p在本機的端口指定一個8888,Tomcat的默認端口8080,後面加鏡像的名字;
-
Tomcat容器啓動成功,裏面的Jpress啓動成功:
-
但是使用Jpress還需使用數據庫,本地沒有MySQL數據庫,也不想安裝,可以在docker裏面運行一個MySQL:
(1)在鏡像中心搜索MySQL,複製地址,命令行pull下載下來;然後運行
https://c.163.com/hub#/m/repository/?repoId=2955
命令行輸入:docker pull hub.c.163.com/library/mysql:latest
-
運行MySQL:
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000
-e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest
-
在瀏覽器內輸入網址,點擊下一步:
-
填寫好數據庫連接信息之後點擊下一步:
-
重啓web容器:
-
重啓web容器之後,頁面自動跳轉: