docker鏡像的倉庫


一、docker鏡像的倉庫 --- repos-registry的創建:

倉庫分為公共倉庫和私有倉庫

DockerHub的官方倉庫 https://hub.docker.com

DockerPool社區倉庫 https://dl.dockerpool.com

Dockern Pool (http://dockerpool.com)是國內專業的Docker社區,目前也提供了官方鏡像的下載管理服務

倉庫 --- 創建自己的私有倉庫

(1)倉庫端172.16.254.162

[root@localhost ~]# docker images

clip_image001

[root@localhost ~]# docker run -d -p 5000:5000 -v /var/lib/registry:/var/lib/registry --restart=always --name registry registry:2

clip_image002

[root@localhost ~]# docker ps -a

clip_image003

 

 

(2)docker客戶端設置,172.16.254.60

2.1. 修改配置文件將私有庫地址加入進去(yum安裝)

# vim /etc/sysconfig/docker

# line 4: add Docker-Registry's URL

OPTIONS='--insecure-registry 192.168.210.128:5000

clip_image004

注意:有時會遇到如下報錯:

clip_image005

這是由於Registry為了安全性考慮,默認是需要https證書支持的,可利用2.2提到的方法解決。

2.2. 或者修改/etc/docker/daemon.json文件,加入如下內容:

"insecure-registries": ["172.16.254.162:5000"],

clip_image006

systemctl restart docker

docker images

clip_image007

(3)客戶端操作

docker tag busybox:latest 172.16.254.162:5000/busybox:latest

clip_image008

 

docker push 172.16.254.162:5000/busybox:latest

clip_image009

客戶端刪除本地原有的busybox 鏡像,然后向私有庫172.16.254.162重新下載

docker pull 172.16.254.162:5000/busybox:latest

clip_image010

docker images

clip_image011

下載成功

二、docker底層依賴的核心技術

命名空間 (Namespaces)

控制組 (Control Groups)

聯合文件系統 (Union File System)

Linux 虛擬網絡支持:本地和容器內創建虛擬接口

1. 命名空間 (Namespaces):實現了容器間資源的隔離

每個容器擁有自己獨立的命名空間 , 運行其中的應用就像是運行在獨立的操作系統中一樣 , 我們都可以看到文件系統,網卡等資源保證了容器之間互不影響,

namesaces管理進程號 , 每個進程命名空間有一套自己的進程號管理方法 , 進程命名空間是一個父子關系的結構 , 子空間中的進程對於父空間是可見的

網絡命名空間—有了 PID 命名空間 , 那么每個名字中的進程就可以相互隔離 , 但是 , 網絡端口還是共享本地的端口 . 網絡命名空間就是為進程提供一個完全獨立的網絡協議棧的視圖

包括 : 網絡設備接口 ,IPv4 和 IPv6 協議棧 ,IP 路由表 , 防火牆規則 ,sockets 等等 ...

目前容器所使用的命名空間提供5種不同的類型 :(了解即可)

clip_image012

2. 控制組功能 cgroups:

制組 (Control groups)--CGroups 是 Linux 內核的一個特性 ,主要用來對共享資源進行隔離、限制、審計等 。cgroups 允許對於進程或進程組公平 ( 不公平 ) 的分配 CPU 時間、內存分配和 I/O 帶寬。

容器通過 cgroups 來得到所能夠管理資源的分配和使用。因此容器所獲得資源僅為所有系統資源的一個部分

資源限制 : 內存子系統為進程組設置內存使用上限,內存達到上限后再申請內存,就會發

出 Out of Memory

優先級 : 通過優先級讓一些組得到更多 CPU 等資源

資源審計 : 用來統計系統上實際把多少資源用到適合的目的上 , 可以使用 cpuacct 子系統

記錄某個進程組使用的 CPU 時間

隔離 : 為組隔離名字空間 , 這樣一個組不會看到其他組的進程 .網絡連接和文件系統

控制 : 掛起 . 恢復和啟動等操作

3. 聯合文件系統 (Union FS)

docker 中使用AUFS(another Union File System 或 v2 版本以后的Advanced multi-layered Unification File System) 控制為每一個成員目錄設定只讀 / 讀寫 / 寫出權限 , 同時 AUFS 有一個類似分層的概念 , 對只讀權限的分支可以邏輯上進行增量的修改

輕量級的高性能分層文件系統 , 它支持將文件系統中的修改信息作為一次提交 , 並層層疊加 , 並且可以將不同目錄掛載到同一個虛擬文件系統下docker 目前支持的聯合文件系統包括AUFS/btrfs/vfs/DeviceMappe


免責聲明!

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



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