Docker 18.03私有倉庫搭建

docker私有倉庫192.168.254.137
docker客戶機192.168.254.128
咱們在使用Docker時 下載鏡像通常都是在外網下載並使用。但是當咱們沒有外網時咱們不得不本身搭建私有倉庫。
流程圖:
Docker 18.03私有倉庫搭建
docker 版本
[root@docker ~]# docker version
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:20:16 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarmlinux

Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:23:58 2018
OS/Arch: linux/amd64
Experimental: falsenginx

安裝docker 
https://blog.51cto.com/10158955/2125450

下載registry 鏡像而且run起來
docker pull registry
[root@docker ~]# docker pull registry

Using default tag: latest
Trying to pull repository docker.io/library/registry ...
latest: Pulling from docker.io/library/registry
Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54
Status: Downloaded newer image for docker.io/registry:latestweb

查看下載的鏡像
docker images
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.erick.com:5000/hello-world latest b2b03e9146e1 3 weeks ago 33.3MB
registry 2 b2b03e9146e1 3 weeks ago 33.3MB
registry latest b2b03e9146e1 3 weeks ago 33.3MBdocker

經過剛剛下載的鏡像Run起來一個容器,並掛載目錄
[root@docker ~]# docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2 ##把宿主機的5000端口映射給docker 的5000端口。json

查看此時剛剛建立的容器
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c92ce5571d5 registry:2 "/entrypoint.sh /etc…" 15 minutes ago Up 15 minutes 0.0.0.0:5000->5000/tcp relaxed_sahadom

進入容器咱們查看容器的目錄
[root@docker ~]# sudo docker exec -it 7c92ce5571d5 sh
/ #
Docker 18.03私有倉庫搭建
exit 退出容器
而後在」/etc/docker/「目錄下,建立」daemon.json「文件。並添加
[root@docker ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["docker.erick.com:5000"]
}tcp

注意書寫格式爲json格式,有嚴格的書寫要求;
第1行是國內鏡像源
第2行是docker私有倉庫地址;docker.erick.com(這裏用的是域名也能夠是IP)就是docker私有倉庫的地址,添加後鏈接docker私有倉庫就是用http協議了。ide

修改/etc/hosts 可以 解析到 docker.erick.com
[root@docker ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.254.137 docker.erick.com
注意:每一個版本的docker修改配置內容都不一樣
[root@docker ~]# cat /etc/sysconfig/docker
OPTIONS='--selinux-enabled --insecure-registry 192.168.254.137:5000'
從新啓動docker 服務
systemctl restart docker
開始把鏡像導入到私有倉庫
查看此時存在的docker 鏡像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.erick.com:5000/hello-world latest b2b03e9146e1 3 weeks ago 33.3MB
registry 2 b2b03e9146e1 3 weeks ago 33.3MB
registry latest b2b03e9146e1 3 weeks ago 33.3MB
注意:爲docker.io/hello-world 鏡像改名爲docker.erick.com:5000/hello-world
Docker 18.03私有倉庫搭建
把剛剛更改好名字的鏡像上傳至私有鏡像
Docker 18.03私有倉庫搭建
Docker 18.03私有倉庫搭建
能夠看到咱們已經把鏡像上傳到了 咱們本身搭建的私有鏡像倉庫。咱們看下存放倉庫的位置
先查看宿主機:
Docker 18.03私有倉庫搭建ui

頁面能夠查看倉庫中的鏡像
http://docker.erick.com:5000/v2/_catalog
Docker 18.03私有倉庫搭建3d

客戶端去使用遠程鏡像:
首先要修改配置,與137主機同樣的配置
scp /etc/docker/daemon.json root@192.168.254.128:/etc/docker
重啓服務
systemctl restart docker
遠程到私有倉庫拉取鏡像
docker pull docker.erick.com:5000/nginx-web
docker: Error response from daemon: Get http://docker.erick.com:5000/v2/: dial tcp: lookup docker.er
這個報錯是由於域名解析問題 ,要麼你就用IP 要麼 你要在本地解析一些
Docker 18.03私有倉庫搭建
Docker 18.03私有倉庫搭建OK

相關文章
相關標籤/搜索