Docker Hub 是 Docker 官方提供的一個管理公共鏡像的鏡像倉庫,咱們能夠從上面拉取咱們想要的鏡像,也能夠推送本身的鏡像上去。但有時候,在沒法訪問互聯網的狀況下或者不但願將本身的鏡像推送到公網上時,那麼 Docker Registry (鏡像私服)就能夠用來存儲管理本身的鏡像。linux
建立 docker-compose.yml
docker
version: '3.1'
services:
registry:
image: registry
restart: always
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry複製代碼
啓動 docker composeapache
$ docker-compose up -d複製代碼
訪問:http://{ip}:5000/v2/json
Docker Registry
安裝成功以後,不太方便只管地查看倉庫中的鏡像,能夠使用 Web UI
界面工具管理鏡像,docker-registry-frontend
就是其中之一tomcat
建立 docker-compose.yml
frontend
version: '3.1'
services:
frontend:
image: konradkleine/docker-registry-frontend:v2
ports:
- 8080:80
volumes:
- ./certs/frontend.crt:/etc/apache2/server.crt:ro
- ./certs/frontend.key:/etc/apache2/server.key:ro
environment:
- ENV_DOCKER_REGISTRY_HOST={docker registy ip}
- ENV_DOCKER_REGISTRY_PORT={docker registy port}複製代碼
上述文件須要自定義修改的配置工具
ENV_DOCKER_REGISTRY_HOST
:安裝的 Docker Registry 訪問 IPENV_DOCKER_REGISTRY_PORT
:安裝的 Docker Registry 訪問端口啓動 Docker Ccompose測試
$ docker-compose up -d複製代碼
訪問 http://{ip}:8080](http://{ip}:8080ui
編輯 daemon.json
(若是不存在則新建)spa
$ vi /etc/docker/daemon.json複製代碼
完整文件以下:
{
"registry-mirrors": [
"{鏡像加速器地址}"
],
"insecure-registries": [
"{docker registry ip}:5000"
]
}複製代碼
重啓服務
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker複製代碼
檢查配置是否生效
$ docker info複製代碼
出現如下內容,說明配置成功
Insecure Registries:
{docker registry ip}:5000
127.0.0.0/8複製代碼
從 Docker Hub 公網拉取一個鏡像
$ docker pull tomcat複製代碼
標記該鏡像指向Docker Registry 私服倉庫
$ docker tag tomcat {docker registry ip}:5000/tomcat複製代碼
推送鏡像到倉庫
$ docker push {docker registry ip}:5000/tomcat複製代碼
刪除從 Docker Hub 公網上拉取的鏡像
$ docker image rm {docker registry ip}:5000/tomcat複製代碼
從 Docker Registry 私服中拉取鏡像
$ docker pull {docker registry ip}:5000/tomcat複製代碼
END