主要內容:python
鏡像是一個文件系統,提供了容器運行時須要用到的文件和參數配置。至關於平時在使用某個軟件時須要下載的安裝包,也至關於安裝操做系統時須要用到 ISO 文件。git
咱們能夠基於某一個鏡像建立多個容器。web
若是想運行某個 Docker 容器,能夠直接從 Docker Hub 中下載對應的鏡像,而後經過鏡像建立容器就能夠了。Docker Hub 相似於 GitHub,你能夠把本身寫好的鏡像放到上面託管,須要用的時候再下載下來。docker
下載鏡像須要執行 docker image pull 命令,是否是和 git 指令很像? 在 DockerHub 上,點擊進入詳情頁,能夠看到不少下載標籤,能夠根據標籤下載指定的版本。json
下載 utuntu 14.04, 也能夠點擊標籤進入 Dockerfile 查看具體信息。ubuntu
docker image pull utuntu:14.04
複製代碼
utuntu 的鏡像就會下載下來ssh
下載一個鏡像之後,能夠經過 docker image ls 命令查看有哪些鏡像。編輯器
而後經過鏡像就能夠建立容器運行了: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"]
}
複製代碼
能夠經過 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 製做遠程標籤
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 當中就能夠看到推送的倉庫了: