docker築基篇-02-映象管理
1 映象再探
docker映象是由FileSystem疊加而成的。
和傳統的linux一樣,最底層是bootfs;之上是rootfs。
和linux不同的是,docker裡的rootfs永遠都是隻讀狀態的。之所以你看起來像是修改了它(給它擴充套件新功能),是因為docker的聯合載入技術(一次同時載入多個檔案系統,並將各層檔案系統的功能組合)。
有了聯合載入技術,最終的檔案系統就有了所有已經載入了的檔案系統的功能。是不是感覺有點像面向物件的繼承呢?
在實際使用中,一個docker映象往往都是由另一個docker映象擴充套件而來的。被擴充套件的那個映象就稱之為父映象。最原始的那個父映象被稱為base image(基礎映象)。
看看這個經典的圖吧:
最上面那一層是可讀寫的。在容器第一次啟動的時候,該層是空的。
當我們修改某個檔案時,被修改的檔案會從讀寫層下面的只讀層複製到讀寫層。這樣一來檔案的只讀版本還保留著,我們修改的只是一個副本,並將這個副本保留在了最上面的讀寫層,同時只讀版本被讀寫層的檔案隱藏了。
而這個正是docker的另一牛逼哄哄的特性寫時複製
。
通過這種機制,每個只讀層都是永遠不會發生變化的了。當每次新建或擴充套件一個容器時,都會在容器棧的最頂層增加一個可寫層。在可寫層發生的變更隱藏掉底層的部分之後,各層在組合功能,從而擴充套件容器。
總感覺這東西真是和麵向物件設計原則中的開閉原則不謀而合啊!!!
對修改關閉(除了第一層的可寫層都是隻讀的),對擴充套件開放(在最頂層修改,擴充套件容器)。
2 基礎命令
2.1 檢視映象
docker images
-a, --all=true|false
顯示所有映象。預設情況下,那些中間層的映象不會被顯示.The default is false.
--digests=true|false
Show image digests. The default is false.
--no-trunc=true|false
不會截斷輸出. The default is false.
-f, --filter=[]
帶條件地列出映象
映象保存於倉庫中,這裡說的倉庫有點類似於git的倉庫。
一個倉庫可以儲存多個映象,通過 TAG 來區分。
倉庫存在於Registry中,預設情況下,Registry是DockerHub。
[root@h1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
csphere/centos 7.1 e3a35d3b1588 46 hours ago 591.4 MB
hub.c.163.com/library/nginx latest b1d6e5f8fe92 5 days ago 181.4 MB
daocloud.io/centos 6 eb24acd8692d 5 weeks ago 194.6 MB
centos latest 9baab0af79c4 5 weeks ago 196.7 MB
centos 6.8 80e46367f846 6 weeks ago 194.5 MB
centos centos7.1.1503 47a77536ad4c 6 weeks ago 212.1 MB
hello-world latest f0cb9bdcaa69 3 months ago 1.848 kB
<none> <none> 151b45d87d28 23 months ago 859.5 MB
[root@h1 ~]#
[root@h1 ~]# docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest 9baab0af79c4 5 weeks ago 196.7 MB
centos 6.8 80e46367f846 6 weeks ago 194.5 MB
centos centos7.1.1503 47a77536ad4c 6 weeks ago 212.1 MB
2.2 拉取映象
docker pull 命令其實就是下載映象用的。預設情況下是從DockerHub下載。
當我們使用run命令來從一個映象啟動容器時,如果映象不在本地,docker就會從DockerHub去pull該映象對應的最新版本,即TAG為latest的版本。
docker pull
-a, --all-tags=true|false
Download all tagged images in the repository. The default is false.
[[email protected] ~]# docker pull fedora
latest: Pulling from fedora
daf0c008c194: Pull complete
daf0c008c194: Pulling fs layer
Digest: sha256:3346e6e34f51fc00844fe87fd2cf3afe43d7e2f360fabedb56a7c81791958df1
Status: Downloaded newer image for fedora:latest
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
csphere/centos 7.1 e3a35d3b1588 46 hours ago 591.4 MB
hub.c.163.com/library/nginx latest b1d6e5f8fe92 5 days ago 181.4 MB
daocloud.io/centos 6 eb24acd8692d 5 weeks ago 194.6 MB
centos latest 9baab0af79c4 5 weeks ago 196.7 MB
centos 6.8 80e46367f846 6 weeks ago 194.5 MB
centos centos7.1.1503 47a77536ad4c 6 weeks ago 212.1 MB
fedora latest daf0c008c194 8 weeks ago 204.4 MB
hello-world latest f0cb9bdcaa69 3 months ago 1.848 kB
<none> <none> 151b45d87d28 23 months ago 859.5 MB
[[email protected] ~]#
# 指定TAG
[[email protected] ~]# docker pull fedora:20
20: Pulling from fedora
a45be3b30145: Downloading [======>……
…………………………
…………………………
2.3 搜尋映象
這裡指的搜尋不是本地搜尋,而是在遠端的DockerHub上搜索。比如:
[[email protected] ~]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 4345 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 827 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 286 [OK]
million12/nginx-php Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS... 76 [OK]
# ...............
[[email protected] ~]#
以上搜索結果的標題含義:
- NAME:映象所在倉庫名,可以用它來pull映象
- DESCRIPTION:映象描述
- STARS:使用者評價
- OFFICIAL:是否是官方的
- AUTOMATED:是否是使用自動構建流程建立的
2.4 刪除映象
docker rmi:刪除指定映象
# 刪除fedora最新版的映象
[[email protected] ~]# docker rmi -f fedora:latest
Untagged: fedora:latest
Deleted: daf0c008c194f2bae4f4bf36327d9166bc1dfa9fbbadb2ad585c1f11037fd787
相關推薦
docker築基篇-02-映象管理
映象再探 基礎命令 1 檢視映象 2 拉取映象 3 搜尋映象 4 刪除映象 1 映象再探 docker映象是由FileSystem疊加而成的。 和傳統的linux一樣,最底層是bootfs;之上是rootfs。 和linux不同的是,d
docker築基篇-03-使用docker-commit構建自己的映象
docker構建映象,至少有兩種方法: docker commit 命令 Dockerfile 本篇文章介紹如何使用docker commit命令來構建自己的映象。並推送到DockerHub。 1 準備 登入到Dockerhub,如下所
docker築基篇-04-使用Dockerfile構建自己的映象
上一篇文章介紹了使用docker commit命令來構建自己的映象。 本篇文章將使用Dockerfile實現上篇文章中的需求。 1 構建自己的映象 此處我們打算,給一個centos:6.8容器安裝nginx伺服器。 並將其狀態保留,以便不用每次
spark築基篇-01-Eclipse開發Spark HelloWorld
1 前言 Spark這麼火,越來越多的小夥伴開始搞大資料。 通過多方查閱資料,這個單機版的Spark的HelloWorld終於跑出來了。 此HelloWorld非彼HelloWorld,並不是打印出HelloWorld那麼簡單,而是
Java執行緒池的瞭解使用—築基篇
## 前言 Java中的執行緒池是一個很重要的概念,它的應用場景十分廣泛,可以被廣泛的用於高併發的處理場景。J.U.C提供的執行緒池:ThreadPoolExecutor類,可以幫助我們管理執行緒並方便地並行執行任務。因此瞭解併合理使用執行緒池非常重要。 本文對執行緒池採用 3W 的策略結合原始碼進行思考
Docker基礎篇2:映象管理
1、映象簡介 簡單說,Docker映象是一個不包含Linux核心而又精簡的Linux作業系統。 映象不是一個單一的檔案,而是有多層構成。我們可以通過docker history <ID/NAME> 檢視映象中各層內容及大小,每
Docker第五篇-Docker映象推送公共倉庫
文章目錄 映象推送步驟 總結 這裡介紹本地映象如何推送到docker官方倉庫。 映象推送步驟 註冊倉庫 登入docker官網倉庫(https://hub.docker.com),註冊一個賬號,記住賬號和密碼 首先,本地要有一個映象,映象
Docker第四篇-Dockerfile製作Docker映象
文章目錄 製作簡單Mysql映象 Dockerfile命令說明 總結 這一篇主要介紹Dockerfile命令的使用說明及如何使用Dockerfile製作簡單映象 製作簡單Mysql映象 建立目錄 mkdir /tmp/mysql
3.Docker映象管理
本章所講內容 About Docker Images Docker Registry 映象製作 Docker Hub映象管理 aliyun平臺映象管理 上傳映象到私有“Registry” About Docker Images Dcoker映象含有啟動容器所需要的檔
Docker 映象管理
認識Docker映象 建立映象時需要制定使用哪個映象。它會先從本地查詢有沒有這個映象,如果不存在,就去官方Docker Hub倉庫查詢並下載到本機然後基於該映象建立容器。 每個映象有一個唯一的ID,也可以使用映象的名字和版本號兩部分組合唯一表示。如果省略版本號,預設使用最新版本(latest)
Docker本地映象管理命令
一、Docker映象操作——列出映象 語法:docker images [OPTIONS] [REPOSITORY[:TAG]] 引數說明: OPTIONS說明: -a :列出本地所有的映象(含中間映像層,預設情況下,過濾掉中間映像層); --digests :顯示映象的摘要資訊; -f
Docker容器技術之映象管理基礎(三)
上一篇文章連結:Docker容器技術基礎用法(二) 目錄 一、回顧 1.1docker容器的狀態 1.2docker容器管理時常用的命令 1.3docker的架構形式 二、About Docker Images 2.1 關於docker映象的作用
Docker $ 第五篇 :Docker 資料管理
一.Docker資料卷簡介 1.在Docker內部及容器之間對資料的管理有兩種方式,一種是資料卷,另一種是掛載主機目錄。 (1)資料卷(Volumes):提供一個或多個容器使用的特殊目錄,它的特性有 在容器之間可共享,可重用 對資料卷的修改立即生效
004.Docker映象管理
一 映象基本操作 映象是一個包含程式執行必要依賴環境和程式碼的只讀檔案,其本質是磁碟上一系列檔案的集合。它採用分層的檔案系統,將每一次改變以讀寫層的形式增加到原來的只讀檔案上。映象是容器執行的基石。 1.1 搜尋映象 1 [email protected]:~# docke
(二)Docker映象管理
文章目錄 1 製作一個簡單映象 2 Docker網路 2.1 暴露埠,相當於DNAT 2.2 聯盟式容器 1 製作一個簡單映象 # 先啟動一個容器,增加一些檔案,然後基於此做成一個映象 [[email
DOCKER-1-2-映象管理
1.進入到redis容器進行終端互動操作,檢視根目錄,發現是有一個完整的檔案系統的。檢視nginx容器也是類似的情況。這裡說下從外部獲取映象的各種標識。比如從quay.io上pull獲取flannel映象。registry是quay.io,埠沒有指明,預設是443(通過https訪問埠),names
Docker容器進階--建立映象、資料管理、網路、儲存型別
一、Docker映象建立方法--基於已有映象、基於本地模板; 基於已有映象: 1.準備映象: 2.準備容器: 3.將容器建立成為docker映象檔案: 基於本地模板: 1.下載本地作業系統模板: https://download.open
Docker介紹,安裝docker,映象管理,通過容器建立映象,使用模板建立映象
Docker介紹 官網 www.docker.com github https://github.com/docker/docker.github.io 開源的容器引擎,可以讓開發者打包應用以及依賴的庫,然後釋出到任何流行的linux發行版上,移植很方便 由g
docker入門之映象管理基礎
docker映象管理基礎 首發:arppinging 一、映象概述 1.1 聯合掛載 在之前的文章我們提到過,容器是基於映象啟動的,映象的儲存驅動是overlay2 overlayFS將單個Linux主機上的兩個目錄合成一個目錄,這些目錄稱為層,統一過程被稱為聯合掛載。 下圖是一個docker映象
docker映象管理倉庫搭建加密認證及負載均衡倉庫的搭建
1.映象管理: Docker 倉庫: Docker 官方已經把倉庫封裝為映象,直接通過啟動容器就可以部署完成倉庫: # docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/l