摘要:容器可以被創(chuàng)建啟動停止刪除暫停等。注最佳實踐的要求容器不應(yīng)該向其存儲層內(nèi)寫入任何數(shù)據(jù),容器存儲層要保持無狀態(tài)化。
docker是什么
可以簡單的認為docker容器是一個虛擬機,封裝就是把這個虛擬機打包,打包后能在任何系統(tǒng)跑,docker裝上即用。也可以形象的比喻成一個集裝箱,把所有貨物都打包好放到箱子里,不需要再分類運輸,集裝箱不互相影響
好處統(tǒng)一應(yīng)用環(huán)境
方便遷移
占用資源少 (如果你多帶帶開一個虛擬機,那么虛擬機會占用空閑內(nèi)存的,docker部署的話,這些內(nèi)存就會利用起來)
docker和虛擬機比較虛擬機是虛擬出一套硬件后,在其上運行一個完整操作系統(tǒng),在該系統(tǒng)上再運行所需應(yīng)用進程
容器內(nèi)的應(yīng)用進程直接運行于宿主的內(nèi)核,容器內(nèi)沒有自己的內(nèi)核,而且也沒有進行硬件虛擬
Docker 鏡像是一個特殊的文件系統(tǒng),除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù)(如匿名卷、環(huán)境變量、用戶等)
鏡像鏡像只是一個虛擬的概念,且是分層存儲的,其實際體現(xiàn)并非由一個文件組成,而是由一組文件系統(tǒng)組成,或者說,由多層文件系統(tǒng)聯(lián)合組成。
1.鏡像(Image)和容器(Container)的關(guān)系,就像是面向?qū)ο蟪绦蛟O(shè)計中的 類 和 實例 一樣,鏡像是靜態(tài)的定義,容器是鏡像運行時的實體。容器可以被創(chuàng)建、啟動、停止、刪除、暫停等。
2.容器的本質(zhì)是進程,但是和宿主執(zhí)行的進程不一樣,它有獨立的命名空間,因此有自己的root文件系統(tǒng),網(wǎng)絡(luò)配置、進程空間
3.容器存儲層的生存周期和容器一樣,容器消亡時,容器存儲層也隨之消亡,因此任何保存于容器存儲層的信息都會隨容器刪除而丟失。
注: Docker 最佳實踐的要求
1.容器不應(yīng)該向其存儲層內(nèi)寫入任何數(shù)據(jù),容器存儲層要保持無狀態(tài)化。 2.所有的文件寫入操作,都應(yīng)該使用 數(shù)據(jù)卷(Volume)、或者綁定宿主目錄,在這些位置的讀寫會跳過容器存儲層,直接對宿主(或網(wǎng)絡(luò)存儲)發(fā)生讀寫,其性能和穩(wěn)定性更高 3.數(shù)據(jù)卷的生存周期獨立于容器,容器消亡,數(shù)據(jù)卷不會消亡倉庫
一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標簽(Tag);每個標簽對應(yīng)一個鏡像。
使用鏡像 獲取鏡像docker pull [選項] [Docker Registry 地址[:端口號]/]倉庫名[:標簽] docker pull ubuntu:16.04 docker run 運行容器的命令 docker run -it --rm ubuntu:16.04 bash -it: -i:交互式操作 -t:終端 我們這里打算進入bash執(zhí)行一些命令并查看返回結(jié)果,因此需要交互式終端 --rm:這個參數(shù)是說容器退出后隨之將其刪除 bash:放在鏡像名后的是命令,這里我們希望有個交互式 Shell,因此用的是 bash。列出鏡像
docker image ls docker image ls -f dangling=true 虛懸鏡像 docker image prune 刪除虛懸鏡像 docker image ls -a 中間層鏡像 docker image ls ubuntu 列出部分鏡像 docker image ls -f since=mongo:3.2 docker image ls -f before=mongo:3.2刪除本地鏡像
docker image rm [選項] <鏡像1> [<鏡像2> ...] docker image rm ID docker image rm 鏡像名 docker image rm 摘要 docker rmi 鏡像名Docker指令 Dockerfile定制鏡像
FROM 指定基礎(chǔ)鏡像 RUN 執(zhí)行命令 構(gòu)建鏡像 docker build -t nginx:v3 .COPY 復(fù)制文件
COPY <源路徑>... <目標路徑>
COPY package.json /usr/src/app/
相對于工作目錄的相對路徑(工作目錄可以用 WORKDIR
各種元數(shù)據(jù)都會保留。比如讀、寫、執(zhí)行權(quán)限、文件變更時間等
ADDAdd 比COPY多了些特性,比如 <源路徑> 可以是一個 URL
CMDshell: CMD <命令>
exec : CMD ["可執(zhí)行文件", "參數(shù)1","參數(shù)2"]
CMD echo $HOME CMD [ "sh", "-c", "echo $HOME" ]ENV
ENV NODE_VERSION 7.2.0 或者ENV NODE_VERSION=7.2.0 比如使用: RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION操作容器 啟動
$ docker container run -d -p 127.0.0.2:8080:80 --rm --name mynginx nginx重啟
docker container start終止
docker stop ID進入容器
docker attach ID /exit 會導(dǎo)致容器退出 docker exec -it ID /exit 不會導(dǎo)致容器退出Docker Compose 安裝和卸載
linux安裝
$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
卸載
$ sudo rm /usr/local/bin/docker-compose使用
docker-compose up docker-compose down docker-compose --version項目實踐
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27223.html
摘要:容器可以被創(chuàng)建啟動停止刪除暫停等。注最佳實踐的要求容器不應(yīng)該向其存儲層內(nèi)寫入任何數(shù)據(jù),容器存儲層要保持無狀態(tài)化。 docker是什么 可以簡單的認為docker容器是一個虛擬機,封裝就是把這個虛擬機打包,打包后能在任何系統(tǒng)跑,docker裝上即用。也可以形象的比喻成一個集裝箱,把所有貨物都打包好放到箱子里,不需要再分類運輸,集裝箱不互相影響 好處 統(tǒng)一應(yīng)用環(huán)境 方便遷移 占用資源少 ...
摘要:使用簽署免費證書后端掘金本文操作在操作系統(tǒng)下完成,需要和超文本傳輸安全協(xié)議英語,縮寫,常稱為,紅黑樹深入剖析及實現(xiàn)后端掘金紅黑樹是平衡二叉查找樹的一種。 使用 Lets Encrypt 簽署免費 Https 證書 - 后端 - 掘金 本文操作在Linux操作系統(tǒng)下完成,需要Python和Nginx 超文本傳輸安全協(xié)議(英語:Hypertext Transfer Protocol Sec...
閱讀 2101·2021-11-18 10:02
閱讀 2850·2021-09-04 16:41
閱讀 1142·2019-08-30 15:55
閱讀 1405·2019-08-29 17:27
閱讀 1070·2019-08-29 17:12
閱讀 2535·2019-08-29 15:38
閱讀 2855·2019-08-29 13:02
閱讀 2831·2019-08-29 12:29