容器鏡像的管理主要圍繞鏡像倉庫(Registry)來進行。在實際應用中,不管開發人員或CI系統發佈鏡像,仍是測試人員或運維人員下載鏡像,都要經過鏡像倉庫來完成。鏡像倉庫分爲公有倉庫和私有倉庫兩種,例如Docker Hub就屬於公有倉庫,公有倉庫的優勢是能夠直接使用,無須本身維護。但考慮到訪問效率和鏡像安全等方面的緣由,企業可構建本身內部的私有倉庫,供內部員工上傳、下載鏡像使用。
系統環境:docker
服務器 | 操做系統 | IP地址 | 已安裝軟件 |
---|---|---|---|
docker倉庫主機 | Centos 7.5 64位 | 192.168.2.225 | docker-ce-18.06.1.ce |
docker主機 | Centos 7.5 64位 | 192.168.2.226 | docker-ce-18.06.1.ce |
一、下載registry鏡像docker pull registry
二、建立容器並運行apache
docker run -itd -p 192.168.2.225:5000:5000 -v /data/docker/registry:/var/lib/registry --restart=always --name registry registry:latest
參數說明:
-itd:開啓交互模式,分配一個僞終端,之後臺方式運行
-p:把容器的5000端口映射到宿主機指定IP的5000端口上
-v:把容器的/var/lib/registry目錄映射到宿主機的/data/docker/registry目錄,/var/lib/registry是容器中存放鏡像文件的目錄,來實現數據的持久化
--restart=always:重啓策略,容器異常退出會自動重啓容器
--name:指定容器的名稱爲registry
三、查看倉庫中的鏡像curl http://192.168.2.225:5000/v2/_catalog
由於纔剛運行,還未上傳任何鏡像,因此是空的json
一、將以前建立好的鏡像打個標籤
注:centos/httpd:test是我上一篇博文裏製做的鏡像,http://www.javashuo.com/article/p-hqpgquik-bu.htmldocker tag centos/httpd:test 192.168.2.225:5000/httpd-test:v1
參數說明:
tag:標記本地鏡像,將其歸於某一個倉庫
centos/httpd:test是源鏡像和標記信息
192.168.2.225:5000/httpd-test:v1是目標鏡像,包含私有倉庫的IP和端口
二、修改配置文件,添加私有倉庫地址vim /etc/docker/daemon.json
vim
{ "registry-mirrors": ["https://registry.docker-cn.com"], "graph": "/data/docker", "insecure-registries": ["192.168.2.225:5000"] }
三、重啓docker服務systemctl restart docker
四、將鏡像上傳到私有倉庫docker push 192.168.2.225:5000/httpd-test:v1
五、查看私有倉庫中的鏡像
查看全部鏡像curl http://192.168.2.225:5000/v2/_catalog
查看httpd-test鏡像有哪些tagscurl http://192.168.2.225:5000/v2/httpd-test/tags/list
六、將本地鏡像打包成tar文件,保存到/tmp/目錄下docker save -o /tmp/httpd-test-v3.tar 192.168.2.225:5000/httpd-test
參數說明:
save:將指定鏡像保存成tar歸檔文件
-o:目標文件,可以使用絕對路徑和相對路徑
七、刪除已經打過包的本地鏡像docker rmi -f 192.168.2.225:5000/httpd-test:v1 centos/httpd:test
八、從私有倉庫下載httpd-test鏡像docker pull 192.168.2.225:5000/httpd-test:v1
九、建立並啓動容器centos
docker run -itd --privileged --restart=always --name httpd_test -p 80:80 192.168.2.225:5000/httpd-test:v1 /usr/sbin/init
注:具體參數使用請參考個人上一篇部署博文https://blog.51cto.com/andyxu/2174652
十、經過瀏覽器訪問http://192.168.2.226
能正常訪問到apache主頁,OK瀏覽器