elasticsearch入門系列">elasticsearch入門系列
965
2022-05-30
鏡像
docker 把應用程序及其依賴,打包在 image 文件里面。只有通過這個文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根據 image 文件生成容器的實例。同一個 image 文件,可以生成多個同時運行的容器實例。
image 是二進制文件。實際開發中,一個 image 文件往往通過繼承另一個 image 文件,加上一些個性化設置而生成。舉例來說,你可以在 Ubuntu 的 image 基礎上,往里面加入 Apache 服務器,形成你的 image。
鏡像和容器
上圖從頂層設計層面展示了鏡像和容器間的關系。通常使用docker container run和docker service create命令從某個鏡像啟動一個或多個容器。
一旦容器從鏡像啟動后,二者之間就變成了互相依賴的關系,并且在鏡像上啟動的容器全部停止之前,鏡像是無法被刪除的。嘗試刪除鏡像而不停止或銷毀使用它的容器,會導致出錯。
當運行容器時,使用的鏡像如果在本地中不存在,docker 就會自動從 docker 鏡像倉庫中下載,默認是從?Docker Hub?公共鏡像源下載。
Docker Hub 也分為官方倉庫(Official Repository)和非官方倉庫(Unofficial Repository),本地倉庫。
鏡像的操作
Docker 是服務器----客戶端架構。命令行運行docker命令的時候,需要本機有 Docker 服務。如果這項服務沒有啟動,可以用下面的命令啟動。
# service 命令的用法 $ sudo service docker start # systemctl 命令的用法 $ sudo systemctl start docker
搜索鏡像: docker search? [image_name]
我們也可以使用 docker search 命令?以CLI 的方式搜索 Docker Hub里的鏡像。比如我們需要一個 python 的鏡像。我們可以通過 docker search 命令搜索 python來尋找適合我們的鏡像。
獲取鏡像:docker pull [image_name]
當我們在本地主機上使用一個不存在的鏡像時 Docker 就會自動下載這個鏡像。如果我們想預先下載這個鏡像,我們可以使用?docker pull?命令來下載它。
列出鏡像:docker images?
各個選項說明:
REPOSITORY:表示鏡像的倉庫源
TAG:鏡像的標簽
IMAGE ID:鏡像ID
CREATED:鏡像創建時間
SIZE:鏡像大小
同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,如 ubuntu 倉庫源里,有 15.10、14.04 等多個不同的版本,我們使用 REPOSITORY:TAG 來定義不同的鏡像。
鏡像歷史? docker history [image_name]
查看鏡像的修改歷史
所有的 Docker 鏡像都起始于一個基礎鏡像層,當進行修改或增加新的內容時,就會在當前鏡像層之上,創建新的鏡像層。
舉一個簡單的例子,假如基于 Ubuntu Linux 16.04 創建一個新的鏡像,這就是新鏡像的第一層;如果在該鏡像中添加?Python?包,就會在基礎鏡像層之上創建第二個鏡像層;如果繼續添加一個安全補丁,就會創建第三個鏡像層。
鏡像標簽 docker tag [image_name]
為鏡像添加一個新的標簽,可以理解為一個新版本
刪除鏡像 docker rmi [image_id/image_name:image_version]
刪除操作會在當前主機上刪除該鏡像以及相關的鏡像層,如果某個鏡像層被多個鏡像共享,那只有當全部依賴該鏡像層的鏡像都被刪除后,該鏡像層才會被刪除。
鏡像導出 docker save -o [包文件] [image_name]
將本地鏡像導出為一個壓縮包
鏡像導入 docker load
將壓縮包作為鏡像導入
構建鏡像 docker build
我們使用命令?docker build , 從零開始來創建一個新的鏡像。為Dockerfile 文件配合使用
Docker 鏡像服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。