CentOS環境下Docker私有倉庫搭建


本文講述如何搭建docker私有倉庫。

 

有了docker hub,為什么還要搭建docker私有倉庫?

1、性能考慮:docker hub的訪問要通過互聯網,性能太低。

2、安全性:更多的時候,鏡像不想被外部的人獲取,雖然可以在docker hub上申請私有repository,但是需要付費。

 

系統環境:CentOS release 6.7 (Final)

IP:100.90.61.14

 

  • 安裝docker

如下操作是在root用戶下

yum -y install docker-io

啟動docker

service docker start   # 啟動docker
service docker stop    # 停止docker
service docker restart # 重啟docker

 

  • 搭建docker私有倉庫

搭建docker私有倉庫也是通過docker,真是就地取材。

1、首先下載registry鏡像

docker pull registry:2

說明:

這里下載的是最新版本2。

 

2、啟動registry鏡像的容器

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2

說明:

-d ==> 作為daemon進程啟動,也就是后台啟動

-v /myregistry:/tmp/registry ==> 默認情況下,會將倉庫存放於容器內的/tmp/registry目錄下,指定本地目錄/myregistry掛載到容器,可以防止容器意外停止后鏡像的丟失。

-p 5000:5000 ==> 前一個5000是host的端口,后一個是容器的端口。這里是將容器的5000端口映射到host的5000端口。

 

3、配置https權限支持

修改/etc/sysconfig/docker,我的文件內容如下

# /etc/sysconfig/docker
#
# Other arguments to pass to the docker daemon process
# These will be parsed by the sysv initscript and appended
# to the arguments list passed to docker -d

other_args="--exec-driver=lxc --selinux-enabled --insecure-registry 100.90.61.14:5000"
DOCKER_CERT_PATH=/etc/docker

# Resolves: rhbz#1176302 (docker issue #407)
DOCKER_NOWARN_KERNEL_VERSION=1

# Location used for temporary files, such as those created by
# # docker load and build operations. Default is /var/lib/docker/tmp
# # Can be overriden by setting the following environment variable.
# # DOCKER_TMPDIR=/var/tmp
#
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://2a5b5ce4.m.daocloud.io

說明:

--insecure-registry 100.90.61.14:5000,表示開啟5000端口的非安全模式,也就是http模式。

重啟docker服務

service docker restart

 

 

  • 上傳鏡像到私有registry

先下載一個httpd鏡像作為示例

docker pull httpd

修改一下該鏡像的tag

# docker tag httpd 100.90.61.14:5000/kangaroo/httpd:v1

說明:

1)我們在鏡像前面加上了運行私有registry的ip:port,這是必須的,只有訪問docker hub的時候可以忽略ip:port。

2)kangaroo是我的網名,這里加上予以區分用戶。

 

上傳

上傳鏡像到私有registry

# docker push 100.90.61.14:5000/kangaroo/httpd:v1

在私有registry上查看鏡像

# curl -XGET http://100.90.61.14:5000/v2/_catalog

{"repositories":["kangaroo/httpd"]}

 

下載

從私有registry上下載鏡像

刪除本地鏡像

docker rmi 100.90.61.14:5000/kangaroo/httpd:v1

從私有registry上下載

docker pull 100.90.61.14:5000/kangaroo/httpd:v1

查看本地鏡像,可以看到已經拉下來了。

# docker images
100.90.61.14:5000/kangaroo/httpd   v1                  91199e851c7a        4 weeks ago         177.3 MB

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM