docker私有倉庫搭建和資源限制


Docker 私有倉庫的搭建

     docker 私有倉庫默認只支持https協議的訪問  不支持http協議 如果需要允許通過http協議訪問 必須手動修改配置文件

     docker官方默認提供的倉庫  提供軟件包docker-distribution 由python開發的web系統

      #   yum install docker-registry
      #   systemctl start docker-distribution

     非dockerhub的Reistry必須明確指定服務器的地址 端口     非頂層的私有倉庫還必須給定用戶名

     要想把鏡像推送的私有倉庫 必須先給鏡像打上合適的標簽 標簽錯誤是無法上傳docker 鏡像的

給鏡像打標簽
# docker image ls
  REPOSITORY           TAG                 IMAGE ID            
   myweb                v2                  83d7884335ed   
# docker tag myweb:v2 192.168.30.137:5000/myweb:v2_2

[root@nginx-docker]# docker push 192.168.30.137:5000/myweb
The push refers to a repository [192.168.30.137:5000/myweb]
Get https://192.168.30.137:5000/v1/_ping: http: server gave HTTP response to HTTPS client

#允許運行http協議
[root@nginx-docker docker]# vi /etc/docker/daemon.json
{
  "insecure-registries":["192.168.30.137:5000"]
}

#修改daemon.json 拉取私有倉庫鏡像
[root myweb]# docker pull 192.168.30.137:5000/myweb:v2_2
私有倉庫的上傳和下載

 

HARBOR 搭建私有倉庫     

      企業級docker私有倉庫項目    原生支持鏡像的冗余備份  主要由vmware 中國團隊成員開發

      支持訪問控制  活動監控  主從復制  

      需要借助docker-compose 單機容器編排工具安裝HARBOR

     1.安裝docker-compose 

        yum install docker-compose

# yum install docker-compose
# https://github.com/vmware/harbor
1.下載harbor源碼
2.# tar xf harbor-offline-installer-v1.5.2.tgz  -C /usr/local/
3. vi /usr/local/harbor/harbor.cfg
   hostname = myharbor.com  不能寫服務器IP 必須寫主機名
   后面無法解析地址 造成上傳鏡像失敗
4.cd /usr/local/harbor
5. ./install.sh  自動執行安裝腳本
harbor安裝
5.http://192.168.30.139/harbor/sign-in
  項目 》 新建項目(倉庫) 》
6.harbor上傳下載鏡像的時候需要進行用戶認證的 harbor中創建的用戶


[root@nginx-docker ~]# docker tag myweb:v2 192.168.30.139/dev/myweb:v2_1
[root@nginx-docker ~]# docker push 192.168.30.139/dev/myweb:v2_1
The push refers to a repository [192.168.30.139/dev/myweb]
Get https://192.168.30.139/v1/_ping: dial tcp 192.168.30.139:443: getsockopt: connection refused
[root@nginx-docker ~]# vi /etc/docker/daemon.json
[root@nginx-docker ~]# systemctl restart docker
[root@nginx-docker ~]# docker push 192.168.30.139/dev/myweb:v2_1
The push refers to a repository [192.168.30.139/dev/myweb]
86527283a11a: Preparing 
b87bb670f898: Preparing 
841051620742: Waiting 
717b092b8c86: Waiting 
denied: requested access to the resource is denied
[root@nginx-docker ~]# docker login 92.168.30.139
Username: yxh
Password: 
Error response from daemon: Get https://92.168.30.139/v1/users/: dial tcp 92.168.30.139:443: i/o timeout

使用docker login不能使用服務器IP地址,必須使用可以被解析的主機名
vi /etc/hosts
  192.168.30.139  myharbor.com

[root@nginx-docker ~]# docker login myharbor.com
  Username: yxh
  Password: 
  Login Succeeded

[root@nginx-docker ~]# docker tag myweb:v2 myharbor.com/dev/myweb:v2
[root@nginx-docker ~]# docker push myharbor.com/dev/myweb:v2
The push refers to a repository [myharbor.com/dev/myweb]
86527283a11a: Pushed 
6263c50a557c: Pushed 
c6ee3d0df60c: Pushed 
2eb31a989e11: Pushed 
v2: digest: sha256:41cfd4c47d2f24ca703ef32ff7de9ed166be65adf7c725ff2894cd0b0125ee2a size: 1774

一次性推送整個倉庫
 1.先給多個鏡像打上標簽
  docker tag myweb:v3-1  myharbor.com/dev/myweb:v3-1
  docker tag myweb:v3-2  myharbor.com/dev/myweb:v3-2
  docker tag myweb:v3-3  myharbor.com/dev/myweb:v3-3
 2.上傳整個倉庫(把三個鏡像上傳到同一倉庫(myweb)中)
  docker push myharbor.com/dev/myweb 

3.下載鏡像
# docker pull myharbor.com/dev/myweb:v2
Trying to pull repository myharbor.com/dev/myweb ... 
v2: Pulling from myharbor.com/dev/myweb
Digest: sha256:41cfd4c47d2f24ca703ef32ff7de9ed166be65adf7c725ff2894cd0b0125ee2a
Status: Downloaded newer image for myharbor.com/dev/myweb:v2

docker-compose命令
  停止harbor  docker-compose stop
  啟動harbor  docker-compose start
harbor上傳和下載鏡像

 

harbor倉庫的使用

  

 

docker容器資源限制

      容器技術能夠實現主要依賴於內核的兩個特性 名稱空間和控制組

      默認情況一個容器是沒有使用資源的限制,它能耗掉宿主機上的所有資源

      限制容器的cpu和內存這兩種資源

      OOM

          如果系統內核探測到當前宿主機已經沒有足夠內存可分配給系統運行中重要的系統進程,就會拋出一個系統異常並且會強制殺死一些內存耗用比較大的應用進程

          每個進程都有一個OOM_adj參數 代表一旦發生OOM 是否優先被kill的優先級

    容器內存限制

    容器CPU限制

         cpu核心編號是從0開始編號的

         --cpus   限制容器最多使用多少核cpu

  # docker pull lorel/docker-stress-ng    下載docker容器壓測鏡像

     啟動容器后執行 stress help   查看相關使用文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM