天天看點

Docker鏡像倉庫

docker倉庫的使用

什麼是鏡像倉庫? 存放着很多鏡像的倉庫

為什麼要使用鏡像倉庫?

  1. 起到備份作用
  2. 友善其他機器下載下傳使用

鏡像倉庫的種類?我們可以大緻分為倆大類: 

  公共鏡像倉庫

    官方:https://hub.docker.com/,基于各個軟體開發或者有軟體提供商開發的

    非官方:其他組織或者公司開發的鏡像,供大家免費使用

  私有鏡像倉庫

    公司自己搭建的,用于存放公司内部的鏡像,自己管理,不提供給外部使用,避免了商業項目暴露出去的風險。

Docker鏡像倉庫

阿裡雲鏡像倉庫的搭建與使用

阿裡雲鏡像倉庫申請位址:https://cr.console.aliyun.com/cn-shanghai/instances/repositories

步驟:

登入阿裡雲Docker Registry

$ sudo docker login --username=穿靴子的狸花貓 registry.cn-shenzhen.aliyuncs.com

将鏡像推送到Registry

$ sudo docker login --username=穿靴子的狸花貓 registry.cn-shenzhen.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/xdclassimages/mysql:[鏡像版本号]
$ sudo docker push registry.cn-shenzhen.aliyuncs.com/xdclassimages/mysql:[鏡像版本号]      

從Registry中拉取鏡像

$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/xdclassimages/mysql:[鏡像版本号]      

harbor倉庫搭建,建構自己的鏡像倉庫

安裝之前確定前置條件是否滿足,需要安裝docker、docker-compose、openssl以及python2.7以上

              docker -v  docker -compose -v  python -v 

安裝 yum -y install openssl

Harbor離線版安裝下載下傳位址: https://github.com/goharbor/harbor/releases

上傳對應安裝包:到 /usr/local  目錄下 tar -xf harbor .tar.gz

修改配置:harbor.yml

    修改主機名(注意空格):hostname: 192.168.0.151 //注意冒号之後的空格

    修改密碼(注意空格):harbor_admin_password: Harbor12345

執行腳本:sh prepare   acho$? 出現0 ,表示成功,出現一個新的yml檔案

執行安裝指令:sh install.sh

執行指令:docker-compose ps

       通路Harbor ip:80,預設使用者名admin,Harbor12345

關閉:docker-compose down

啟動:docker-compose up -d  //在harbor根目錄執行

harbor倉庫配置與使用

Docker配置使用自建倉庫

    預設docker隻允許通路 https倉庫,如果要通路http倉庫需要自己配置

配置允許通路http倉庫:vi /etc/docker/daemon.json,與之前的鏡像加速隔開

    {

    "insecure-registries":["http://192.168.0.151"]

    }

重新開機docker服務:systemctl restart docker.service

重新開機dockerharbor:docker-compose up -d

  1. 網頁上建立項目名:
  2. 登入:docker login --username=admin 192.168.0.151
  3. 改名:docker tag mysql:5.7 192.168.0.151/xdclass/mysql:5.7
  4. 推送:docker push 192.168.0.151/xdclass/mysql:5.7
  5. 下載下傳:docker pull 192.168.0.151/xdclass/mysql:5.7
  6. docker login  後有一個登入憑證(可删除,下次需要密碼):
  7.  /root/.docker/config.json  (建議從安全角度出發,每次登入後進行删除)

本地鏡像容器的載入與載出

倆種辦法:

    儲存鏡像

    儲存容器

這兩個鏡像id完全一模一樣

儲存鏡像:

    docker save 鏡像id -o /home/mysql.tar  // 輸出目錄,以什麼命名

    docker save mysql:5.7 > /home/mysql.tar

載入鏡像:docker load -i mysql.tar,重命名:docker tag 鏡像id 名字

這兩個容器id不一樣,是一個新的:

儲存容器:docker export 容器id -o /home/mysql-export.tar

載入容器:docker import mysql-export.tar

繼續閱讀