国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

理解Docker(2):Docker 鏡像詳細介紹

2019-11-02 16:27:50
字體:
來源:轉載
供稿:網友

本系列文章將介紹Docker的有關知識:

(1)Docker 安裝及基本用法

(2)Docker 鏡像

(3)Docker 容器的隔離性 - 使用 Linux namespace 隔離容器的運行環境

(4)Docker 容器的隔離性 - 使用 cgroups 限制容器使用的資源

(5)Docker 網絡

對于每個軟件,除了它自身的代碼以外,它的運行還需要有一個運行環境和依賴。不管這個軟件是象往常一樣運行在物理機或者虛機之中,還是運行在現在的容器之中,這些都是不變的。在傳統環境中,軟件在運行之前也需要經過 代碼開發->運行環境準備 -> 安裝軟件 -> 運行軟件 等環節,在容器環境中,中間的兩個環節被鏡像制作過程替代了。也就是說,鏡像的制作也包括運行環境準備和安裝軟件等兩個主要環節,以及一些其他環節。因此,Docker 容器鏡像其實并沒有什么新的理論,只是這過程有了新的方式而已。

  鏡像(image)是動態的容器的靜態表示(specification),包括容器所要運行的應用代碼以及運行時的配置。Docker 鏡像包括一個或者多個只讀層( read-only layers ),因此,鏡像一旦被創建就再也不能被修改了。一個運行著的Docker 容器是一個鏡像的實例( instantiation )。從同一個鏡像中運行的容器包含有相同的應用代碼和運行時依賴。但是不像鏡像是靜態的,每個運行著的容器都有一個可寫層( writable layer ,也成為容器層 container layer),它位于底下的若干只讀層之上。運行時的所有變化,包括對數據和文件的寫和更新,都會保存在這個層中。因此,從同一個鏡像運行的多個容器包含了不同的容器層。

 Docker 有兩種方式來創建一個容器鏡像:

創建一個容器,運行若干命令,再使用 docker commit 來生成一個新的鏡像。不建議使用這種方案。 創建一個 Dockerfile 然后再使用 docker build 來創建一個鏡像。大多人會使用 Dockerfile 來創建鏡像。

1. docker build 生成鏡像

1.1 生成過程實例

 在使用 Dockerfile 創建容器之前,需要先準備一個 Dockerfile 文件,然后運行 docker build 命令來創建鏡像。我們通過下面的例子來看看Docker 創建容器的過程。

 FROM ubuntu:14.04MAINTAINER sammy "sammy@sammy.com"RUN apt-get updateRUN apt-get -y install ntpEXPOSE 5555CMD ["/usr/sbin/ntpd"]

這是一個非常簡單的Dockerfile,它的目的是基于 Ubuntu 14.04 基礎鏡像安裝 ntp 從而生成一個新的鏡像??纯雌溥^程:

root@devstack:/home/sammy/ntponubuntu# docker build -t sammy_ntp2 .Sending build context to Docker daemon 2.048 kBStep 1 : FROM ubuntu:14.04 ---> 4a725d3b3b1cStep 2 : MAINTAINER sammy "sammy@sammy.com" ---> Using cache ---> c4299e3f774cStep 3 : RUN apt-get update ---> Using cache ---> 694a19d54103Step 4 : RUN apt-get -y install ntp ---> Running in 9bd153c65a76Reading package lists......Fetched 561 kB in 10s (51.1 kB/s)Selecting previously unselected package libedit2:amd64.(Reading database ... 11558 files and directories currently installed.)...Processing triggers for libc-bin (2.19-0ubuntu6.9) ...Processing triggers for ureadahead (0.100.0-16) ... ---> 9cc05cf6f48dRemoving intermediate container 9bd153c65a76Step 5 : EXPOSE 5555 ---> Running in eb4633151d98 ---> f5c96137bec9Removing intermediate container eb4633151d98Step 6 : CMD /usr/sbin/ntpd ---> Running in e81b1eae3678 ---> af678df648bcRemoving intermediate container e81b1eae3678Successfully built af678df648bc
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣恩县| 怀集县| 桃源县| 江门市| 锡林浩特市| 孟村| 四川省| 迁西县| 巴里| 航空| 德化县| 酉阳| 保定市| 绵竹市| 江津市| 林甸县| 北川| 桦川县| 沈丘县| 精河县| 余干县| 九江县| 故城县| 江孜县| 通山县| 滨州市| 奉节县| 石景山区| 建始县| 杭州市| 云霄县| 孝感市| 长葛市| 鞍山市| 侯马市| 建水县| 呼玛县| 龙井市| 昆明市| 雷山县| 读书|