docker倉庫的使用
什麼是鏡像倉庫? 存放着很多鏡像的倉庫
為什麼要使用鏡像倉庫?
- 起到備份作用
- 友善其他機器下載下傳使用
鏡像倉庫的種類?我們可以大緻分為倆大類:
公共鏡像倉庫
官方:https://hub.docker.com/,基于各個軟體開發或者有軟體提供商開發的
非官方:其他組織或者公司開發的鏡像,供大家免費使用
私有鏡像倉庫
公司自己搭建的,用于存放公司内部的鏡像,自己管理,不提供給外部使用,避免了商業項目暴露出去的風險。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CZjBjMkZWO4QWZzMWZjJ2YwIGM4ADOjlTM1YzMzMDOy8CXxMzLcdDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
阿裡雲鏡像倉庫的搭建與使用
阿裡雲鏡像倉庫申請位址: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
- 網頁上建立項目名:
- 登入:docker login --username=admin 192.168.0.151
- 改名:docker tag mysql:5.7 192.168.0.151/xdclass/mysql:5.7
- 推送:docker push 192.168.0.151/xdclass/mysql:5.7
- 下載下傳:docker pull 192.168.0.151/xdclass/mysql:5.7
- docker login 後有一個登入憑證(可删除,下次需要密碼):
- /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