主要內容:
什麼是鏡像 下載鏡像 pull 設置下載加速源 查看鏡像 上傳鏡像 push
📀 什麼是鏡像(image)
鏡像是一個文件系統,提供了容器運行時需要用到的文件和參數配置。相當於平時在使用某個軟件時需要下載的安裝包,也相當於安裝操作系統時需要用到 ISO 文件。
我們可以基於某一個鏡像創建多個容器。
📥下載鏡像
如果想運行某個 Docker 容器,可以直接從 Docker Hub 中下載對應的鏡像,然後通過鏡像創建容器就可以了。Docker Hub 類似於 GitHub,你可以把自己寫好的鏡像放到上面託管,需要用的時候再下載下來。
下載鏡像需要執行 docker image pull 命令,是不是和 git 指令很像? 在 DockerHub 上,點擊進入詳情頁,可以看到很多下載標籤,可以根據標籤下載指定的版本。
下載 utuntu 14.04, 也可以點擊標籤進入 Dockerfile 查看具體信息。
docker image pull utuntu:14.04
utuntu 的鏡像就會下載下來
下載一個鏡像以後,可以通過 docker image ls 命令查看有哪些鏡像。
然後通過鏡像就可以創建容器運行了:
docker container run ubuntu:14.04
# 或者通過 image id
docker container run 6e4f1fe62ff1
🚀設置國內源
國內下載官方源下載速度會比較慢,有時候等得讓人想哭,所以最好設置一個國內源地址。
鏡像加速地址提供幾個參考,現在用的是 163 的:
https://registry.docker-cn.com http://hub-mirror.c.163.com https://3laho3y3.mirror.aliyuncs.com http://f1361db2.m.daocloud.io https://mirror.ccs.tencentyun.com
在 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。
也就是說,在製作成一個 image 之前,會有很多的步驟,而每做一個步驟,都會產生一層。最終會合並所有的中間步驟,得到會使用的 image。
📤上傳 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 當中就可以看到推送的倉庫了: