1. 程式人生 > >docker知識彙總

docker知識彙總

一個base作業系統的映象怎麼才200M,不是應該幾個G嗎?

主要是因為:Linux 作業系統由核心空間和使用者空間組成。

核心空間是 kernel,Linux 剛啟動時會載入 bootfs 檔案系統,之後 bootfs 會被解除安裝掉。
使用者空間的檔案系統是 rootfs,包含我們熟悉的 /dev, /proc, /bin 等目錄。
對於 base 映象來說,底層直接用 Host 的 kernel,自己只需要提供 rootfs 就行了。
而對於一個精簡的 OS,rootfs 可以很小,只需要包括最基本的命令、工具和程式庫就可以了。

容器只能使用 Host 的 kernel,並且不能修改。
所有容器都共用 host 的 kernel,在容器中沒辦法對 kernel 升級。如果容器對 kernel 版本有要求(比如應用只能在某個 kernel 版本下執行),則不建議用容器,這種場景虛擬機器可能更合適。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

docker拉取映象報錯:

docker pull hello-world
Using default tag: latest
Trying to pull repository docker.io/library/hello-world ...
sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788: Pulling from docker.io/library/hello-world
Get https://registry-1.docker.io/v2/library/hello-world/manifests/sha256:1a6fd470b9ce10849be79e99529a88371dff60c60aab424c077007f6979b4812: net/http: TLS handshake timeout

是因為docker預設映象拉取地址為國外倉庫下載速度較慢,則會報錯“net/http: TLS handshake timeout”。需要將拉取地址改為國內映象倉庫,國內的映象倉庫有daocloud,阿里雲等,到其官網註冊賬號,就會獲取一個加速器地址,

把地址新增到/etc/docker/daemon.json 檔案中如:{"registry-mirrors": ["我的地址"]},

不想註冊可以用這個       {"registry-mirrors": ["http://f2d6cb40.m.daocloud.io"]}

然後重啟docker:

systemctl daemon-reload

systemctl restart docker.service

再次拉取映象正常

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

如何配置 registry 私庫相關的引數
涉及以下2個引數:
   "insecure-registries": [],  #這個私庫的服務地址
   "registry-mirrors": [],    #私庫加速器
2.配置示例:
# cat /etc/docker/daemon.json
{
    "registry-mirrors": [
       "https://d8b3zdiw.mirror.aliyuncs.com"
    ],

    "insecure-registries": [
       "https://ower.site.com"
    ],
}