centos 7.3( Docker version 19.03.12)
離線本地倉庫 192.168.10.10
客戶機 192.168.10.11
一.先在正常網絡下,使用docker pull正常拉取鏡像。
docker pull registry
2.使用docker images,查看已拉取的鏡像
docker images
3.將鏡像保存為本地文件docker save -o registry.docker 111622000b9b #
在當前目錄下會生成一個registry.docker的文件,將其copy至U盤上。
二、開始在離線機器192.168.10.10安裝本地registry(私有倉庫)
1. 將下載打包后的鏡像拷貝到要安裝私有倉庫的服務器運行docker load -i ./registry.docker
2.如果鏡像名稱為空,可以使用以下命令修改#docker tag imageID 鏡像名:版本號
docker tag 2d4f4b5309b1 registry:latest
3.修改配置文件,添加一句信任私有倉庫
vi /etc/docker/daemon.json
{
"insecure-registries": ["192.168.10.10:5000"]
}
4.重啟docker
systemctl restart docker
5.創建倉庫存放倉庫地址,並啟動registry私有倉庫
mkdir -p /opt/data/registry
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry --name private_registry registry
三、離線客戶機192.168.10.11測試上傳、拉取鏡像。
准備的步驟和上面幾乎一樣
1.先在有正常網絡的服務器下,使用docker pull正常拉取鏡像,並保存打包並上傳到需要測試的機器
docker pull nginx
docker pull centos
docker save -o nginx.docker 鏡像ID #
在當前目錄下會生成一個registry.docker的文件,將其copy至U盤上。
docker save -o centos.docker 鏡像ID
最終上傳到離線測試客戶機是這樣的
2.將下載打包后的鏡像拷貝到要離線測試機后加載
docker load -i ./nginx.docker
docker load -i ./centos.docker
3.如果鏡像名稱為空,可以使用以下命令修改#docker tag imageID 鏡像名:版本號
docker tag 4bb46517cac3 nginx:latest
docker tag 0d120b6ccaa8 centos:latest
4.鏡像打標簽並命名
注意:客戶端打標簽命名很嚴格,不然等下傳不上去,下載不了,必須帶上私有倉庫地址
# docker tag 源鏡像名字:版本 私有倉庫地址/鏡像名字:版本
docker tag nginx:latest 192.168.10.10:5000/nginx:latest
docker tag centos:latest 192.168.10.10:5000/centos:latest
# 查看確認鏡像名字,並添加信任,不如后續會報錯http: server gave HTTP response to HTTPS client
docker images
#docker修改配置文件,添加一句信任私有倉庫
vi /etc/docker/daemon.json
{
"insecure-registries": ["192.168.10.10:5000"]
}
#重啟docker
systemctl restart docker
5.上傳鏡像到離線私有倉庫192.168.10.10
docker push 192.168.10.10:5000/nginx:latest
docker push 192.168.10.10:5000/centos:latest
6.最后登錄192.168.10.10離線私有確認鏡像情況
本地私有倉庫設置的地址:
ls /opt/data/registry/docker/registry/v2/repositories/
7.到客戶機刪除鏡像后測試從私有倉庫那里拉去鏡像
docker images
刪除客戶機所有鏡像
docker rmi $(docker images -q)
#去私有倉庫拉取鏡像
docker pull 192.168.10.10:5000/centos:latest
docker pull 192.168.10.10:5000/nginx:latest