Docker 入門:鏡像 image

主要內容:python

  • 什麼是鏡像
  • 下載鏡像 pull
  • 設置下載加速源
  • 查看鏡像
  • 上傳鏡像 push

📀 什麼是鏡像(image)

鏡像是一個文件系統,提供了容器運行時須要用到的文件和參數配置。至關於平時在使用某個軟件時須要下載的安裝包,也至關於安裝操做系統時須要用到 ISO 文件。git

咱們能夠基於某一個鏡像建立多個容器。web

https://user-gold-cdn.xitu.io/2020/5/28/1725bbbcde5ef3a1?w=1014&h=540&f=png&s=150727
https://user-gold-cdn.xitu.io/2020/5/28/1725bbbcde5ef3a1?w=1014&h=540&f=png&s=150727

📥下載鏡像

若是想運行某個 Docker 容器,能夠直接從 Docker Hub 中下載對應的鏡像,而後經過鏡像建立容器就能夠了。Docker Hub 相似於 GitHub,你能夠把本身寫好的鏡像放到上面託管,須要用的時候再下載下來。docker

https://user-gold-cdn.xitu.io/2020/5/28/1725bbbcf1682cfb?w=1099&h=520&f=jpeg&s=68776
https://user-gold-cdn.xitu.io/2020/5/28/1725bbbcf1682cfb?w=1099&h=520&f=jpeg&s=68776

下載鏡像須要執行 docker image pull 命令,是否是和 git 指令很像? 在 DockerHub 上,點擊進入詳情頁,能夠看到不少下載標籤,能夠根據標籤下載指定的版本。json

https://user-gold-cdn.xitu.io/2020/5/28/1725bbbce4646375?w=984&h=393&f=jpeg&s=52347
https://user-gold-cdn.xitu.io/2020/5/28/1725bbbce4646375?w=984&h=393&f=jpeg&s=52347

下載 utuntu 14.04, 也能夠點擊標籤進入 Dockerfile 查看具體信息。ubuntu

docker image pull utuntu:14.04
複製代碼

utuntu 的鏡像就會下載下來ssh

https://user-gold-cdn.xitu.io/2020/5/28/1725bbbce4ab9d8a?w=562&h=120&f=jpeg&s=15921
https://user-gold-cdn.xitu.io/2020/5/28/1725bbbce4ab9d8a?w=562&h=120&f=jpeg&s=15921

下載一個鏡像之後,能夠經過 docker image ls 命令查看有哪些鏡像。編輯器

https://user-gold-cdn.xitu.io/2020/5/28/1725bbbce4a5872d?w=854&h=161&f=jpeg&s=33092
https://user-gold-cdn.xitu.io/2020/5/28/1725bbbce4a5872d?w=854&h=161&f=jpeg&s=33092

而後經過鏡像就能夠建立容器運行了:ui

docker container run ubuntu:14.04
# 或者經過 image id
docker container run 6e4f1fe62ff1
複製代碼

🚀設置國內源

國內下載官方源下載速度會比較慢,有時候等得讓人想哭,因此最好設置一個國內源地址。spa

鏡像加速地址提供幾個參考,如今用的是 163 的:

在 docker toolbox 中配置國內源:

# 登陸 host  
$ docker-machine ssh default 

# 添加國內源地址
$ sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=[http://hub-mirror.c.163.com](http://hub-mirror.c.163.com/) |g" \
/var/lib/boot2docker/profile 

# 退出機器
exit 

# 重啓 host
$ docker-machine restart default
複製代碼

或者修改 /etc/docker/daemon.json 文件(沒驗證):

# vi /etc/docker/daemon.json
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
複製代碼

🔍查看 image 詳情

能夠經過 inspect 指令查看 image 的詳細信息。好比開放了哪些端口,設置了哪些環境變量,最終運行的是什麼命令。

docker container inspect image_id
複製代碼

查看 image 的構建歷史:

docker image history utuntu:14.04
# 或者 docker image history image_id
複製代碼

每一行表明的是一個層級 layer, 能夠看到 image 是如何構建的, missing 表示中間層,也就是在構建最終的 image 時產生的臨時 image。

https://user-gold-cdn.xitu.io/2020/5/28/1725bbbcf17f1fd8?w=882&h=216&f=jpeg&s=27105
https://user-gold-cdn.xitu.io/2020/5/28/1725bbbcf17f1fd8?w=882&h=216&f=jpeg&s=27105

也就是說,在製做成一個 image 以前,會有不少的步驟,而每作一個步驟,都會產生一層。最終會合並全部的中間步驟,獲得會使用的 image。

https://user-gold-cdn.xitu.io/2020/5/28/1725bbbd0867f2b4?w=905&h=415&f=jpeg&s=58669
https://user-gold-cdn.xitu.io/2020/5/28/1725bbbd0867f2b4?w=905&h=415&f=jpeg&s=58669

📤上傳 image

上傳 image 首先須要給本地的 image 製做遠程標籤

docker image tag python:3.7-alpine looker53/python:3.7-alpine
# 也能夠用 image id
docker image tag e854017db514 looker53/python:3.7-alpine
複製代碼

這裏表示把本地的 python 鏡像,標籤爲 3.7-alpine 設置成 looker53 這個用戶的 python 鏡像,標籤也叫 3.7-alpine,也能夠設成其餘名字。

登錄 looker53 這個帳號:

docker login
複製代碼

而後經過 push 命令推送到遠程倉庫:

docker image push looker53/python:37alpine
複製代碼

接着,在 DockerHub 當中就能夠看到推送的倉庫了:

https://user-gold-cdn.xitu.io/2020/5/28/1725bbbd0a154426?w=1022&h=481&f=jpeg&s=52731
https://user-gold-cdn.xitu.io/2020/5/28/1725bbbd0a154426?w=1022&h=481&f=jpeg&s=52731
相關文章
相關標籤/搜索