Centos7 Docker私有倉庫搭建
倉庫:集中存放鏡像的地方,可分為公共倉庫和私有倉庫
(公共倉庫"http://hub.docker.com"或國內的"http://www.daocloud.io")
Registry:注冊服務器才是存放倉庫具體的服務器(Registry),每個服務器上都可以放置多個倉庫,而每個倉庫上可以放置多個鏡像,每個鏡像上可以運行多個容器,每個容器上可以跑一個應用或應用組。
搭建docker倉庫有兩種方式:
方式一:在同一臺服務器搭建倉庫和客戶端(屬于本地搭建)
方式二:兩臺服務器一個是倉庫,一個是客戶端(屬于本地搭建)
注:本文使用方式二搭建,也建議在真實環境中使用這種方式搭建!
環境:
系統:兩臺centos7 -3.10.0-327.el7.x86_64
Docker版本:docker-1.13.1-63
IP:Docker客戶端地址:192.168.152.158
Docker私有倉庫地址:192.168.152.159
注:清空并關閉以上環境主機的防火墻和selinux
關閉防火墻 systemctl stop firewalld.service
禁止防火墻開機自啟 systemctl disable firewalld.service
關閉selinux sed -i 's/SELINUX=enforcing /SELINUX=disabled/g'
/etc/sysconfig/selinux
重啟 reboot
一、安裝Docker客戶端:192.168.152.158(第一臺服務器)
本文基于上一篇docker安裝文章繼續搭建的,在安裝docker客戶端部分大家可以參考上一篇文章:安裝Docker
1、指定私有倉庫服務器地址及端口 vi /etc/sysconfig/docker
OPTIONS='--insecure-registry 192.168.152.159:5000'
注:修改/etc/sysconfig/docker(Ubuntu下配置文件地址為:/etc/init/docker.conf),增加啟動選項(已有參數的在后面追加),之后重啟docker,不添加報錯,https證書問題。
//重啟docker systemctl restart docker
二、搭建Docker私有倉庫:192.168.152.159(第二臺服務器)
1、安裝docker yum -y install docker
2、升級依賴包 yum -y install upgrade device-mapper-libs
3、啟動docker服務 systemctl start docker
4、開機自啟docker服務 systemctl enable docker
5、查看docker版本信息 docker version
6、下載registry鏡像(該鏡像用于構建本地私有倉庫環境)
docker pull registry
注:由于國內網絡問題直接連接官網下載可能會超時,可以重試幾次。
//查看下載registry鏡像 docker images
//遞歸創建鏡像存放目錄 mkdir -p /opt/data/registry
7、運行鏡像并將容器5000端口映射到linux主機5000端口,并將鏡像下載到/opt/data/registry/目錄下(默認為/var/lib/registry目錄)命令如下:
注釋:
i:保持sdtin開放狀態
d:使容器以守護進程方式后臺運行,并打印容器id
t:分配一個tty(虛擬終端設備)
v: 綁定掛載一個容器內的路徑到宿主機路徑
p:映射一個容器的端口到宿主機端口
restart:當容器退出時的重啟策略
name: 給容器命名一個名稱
-–privileged=true :CentOS7中的安全模塊selinux把權限禁掉了,參數給容器加特權,不加上傳鏡像會報權限錯誤
-v /opt/data/registry:/var/lib/registry:默認情況下,會將倉庫存放于容器內的/tmp/registry目錄下,指定本地目錄掛載到容器
三、客戶端上傳鏡像(先切換到客戶端在執行)
1、從公共倉庫拉取httpd鏡像 docker pull httpd
2、查看拉取鏡像 docker images
3、修改鏡像的tag docker tag 原名 修改名
docker tag httpd 192.168.152.159:5000/httpd
4、把打了tag的鏡像上傳到私有倉庫
docker push 192.168.152.159:5000/httpd
5、查看鏡像的存儲目錄和文件(此命令在倉庫服務器上運行查看)
tree /opt/data/registry/docker/registry/v2/repositories/
6、測試從倉庫拉取鏡像
1)刪除docker客戶端鏡像 docker rmi 192.168.152.159:5000/httpd
2)從倉庫拉取剛才刪除的鏡像 docker pull 192.168.152.159:5000/httpd
注:以上操作完成docker倉庫搭建!
轉載于:https://blog.51cto.com/13043516/2120260