2017年12月16日 16:26:33docker
閱讀數:2591shell
原文地址:http://blog.csdn.net/boling_cavalry/article/details/78818462json
hub.docker.com上能夠保存鏡像,可是網速相對較慢,在內部環境中搭建一個私有的公共倉庫是個更好的方案,今天咱們就來實戰搭建私有docker倉庫吧;ubuntu
須要兩臺機器:docker私服倉庫的server和使用docker的普通機器,這兩個機器都是ubuntu16版本的server,ip信息以下:數組
機器名 | ip | 功能 |
---|---|---|
docker-registry | 192.168.119.148 | docker私有倉庫服務器 |
docker-app | 192.168.119.155 | 運行docker服務的普通服務器 |
本次實戰中,上述兩臺機器是vmware上建立的兩個虛擬機,都安裝了docker服務,詳細的建立和安裝過程,請參照《rancher下的kubernetes之一:構建標準化vmware鏡像》,記得在vmware中給兩個鏡像把名字分別改爲「docker-registry」和「docker-app」,以避免後面搞錯了;瀏覽器
虛擬機啓動後,請先修改/etc/hostname文件,將兩個機器的hostname分別修改爲「docker-registry」和「docker-app」,而後用reboot命令重啓;tomcat
docker run --name docker-registry -d -p 5000:5000 registry
執行docker ps命令看一下容器狀況,以下圖:
容器正常啓動,對外提供服務經過5000端口映射到docker-registry的5000端口;服務器
執行命令curl -X GET http://127.0.0.1:5000/v2/_catalog,收到的響應以下,是個json對象,其中repositories對應的值是空的json數組,表示目前倉庫裏尚未鏡像:app
{"repositories":[]}
OK,私有倉庫已經建立和啓動完畢了,接下來試試如何使用吧;curl
正常狀況下,應用服務器推送鏡像到倉庫用的是https,此處咱們經過命令行來測試推送用的是普通的http,因此須要修改docker的啓動參數,使之容許以http協議工做;
執行推送鏡像的機器是docker-app,因此登陸到此機器(推薦使用SecureCRT);
修改/etc/default/docker文件,加入如下紅框內容:
再修改 /lib/systemd/system/docker.service,如下紅框中的內容,第一行爲新增,第二行爲修改:
執行如下命令,從新加載配置信息再重啓docker服務:
systemctl daemon-reload;service docker restart
執行命令docker pull tomcat,從hub.docker.com下載最新版本的tomcat鏡像,以下圖:
下載完畢後,執行docker images查看鏡像的信息,以下圖:
如上圖紅框所示,這個鏡像的ID是3dcfe809147d,因此咱們執行如下命令,給這個鏡像添加一個帶有私有倉庫IP的TAG,這樣後面才能成功推送到私有倉庫:
docker tag 3dcfe809147d 192.168.119.148:5000/tomcat
再執行docker images查看鏡像的信息,以下圖,出現了一個新的鏡像,REPOSITORY是192.168.119.148:5000/tomcat:
執行如下命令進行推送:
docker push 192.168.119.148:5000/tomcat
能夠看到順利進行中,以下圖:
docker rmi 192.168.119.148:5000/tomcat tomcat
docker run --name tomcat001 -p 8080:8080 -idt 192.168.119.148:5000/tomcat
本地沒有鏡像就去私服下載,以下圖:
docker-app的IP是192.168.119.155,因此在當前電腦上打開瀏覽器,輸入:192.168.119.155:8080,能夠看到下圖熟悉的tomcat歡迎頁:
至此本次實戰就結束了,但願能對您的私有倉庫搭建有所幫助。