摘要:容器可以被創建啟動停止刪除暫停等。注最佳實踐的要求容器不應該向其存儲層內寫入任何數據,容器存儲層要保持無狀態化。
docker是什么
可以簡單的認為docker容器是一個虛擬機,封裝就是把這個虛擬機打包,打包后能在任何系統跑,docker裝上即用。也可以形象的比喻成一個集裝箱,把所有貨物都打包好放到箱子里,不需要再分類運輸,集裝箱不互相影響
好處統一應用環境
方便遷移
占用資源少 (如果你多帶帶開一個虛擬機,那么虛擬機會占用空閑內存的,docker部署的話,這些內存就會利用起來)
docker和虛擬機比較虛擬機是虛擬出一套硬件后,在其上運行一個完整操作系統,在該系統上再運行所需應用進程
容器內的應用進程直接運行于宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬
Docker 鏡像是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷、環境變量、用戶等)
鏡像鏡像只是一個虛擬的概念,且是分層存儲的,其實際體現并非由一個文件組成,而是由一組文件系統組成,或者說,由多層文件系統聯合組成。
1.鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的 類 和 實例 一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。
2.容器的本質是進程,但是和宿主執行的進程不一樣,它有獨立的命名空間,因此有自己的root文件系統,網絡配置、進程空間
3.容器存儲層的生存周期和容器一樣,容器消亡時,容器存儲層也隨之消亡,因此任何保存于容器存儲層的信息都會隨容器刪除而丟失。
注: Docker 最佳實踐的要求
1.容器不應該向其存儲層內寫入任何數據,容器存儲層要保持無狀態化。 2.所有的文件寫入操作,都應該使用 數據卷(Volume)、或者綁定宿主目錄,在這些位置的讀寫會跳過容器存儲層,直接對宿主(或網絡存儲)發生讀寫,其性能和穩定性更高 3.數據卷的生存周期獨立于容器,容器消亡,數據卷不會消亡倉庫
一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標簽(Tag);每個標簽對應一個鏡像。
使用鏡像 獲取鏡像docker pull [選項] [Docker Registry 地址[:端口號]/]倉庫名[:標簽] docker pull ubuntu:16.04 docker run 運行容器的命令 docker run -it --rm ubuntu:16.04 bash -it: -i:交互式操作 -t:終端 我們這里打算進入bash執行一些命令并查看返回結果,因此需要交互式終端 --rm:這個參數是說容器退出后隨之將其刪除 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 指定基礎鏡像 RUN 執行命令 構建鏡像 docker build -t nginx:v3 .COPY 復制文件
COPY <源路徑>... <目標路徑>
COPY package.json /usr/src/app/
相對于工作目錄的相對路徑(工作目錄可以用 WORKDIR
各種元數據都會保留。比如讀、寫、執行權限、文件變更時間等
ADDAdd 比COPY多了些特性,比如 <源路徑> 可以是一個 URL
CMDshell: CMD <命令>
exec : CMD ["可執行文件", "參數1","參數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 會導致容器退出 docker exec -it ID /exit 不會導致容器退出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項目實踐
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93090.html
摘要:容器可以被創建啟動停止刪除暫停等。注最佳實踐的要求容器不應該向其存儲層內寫入任何數據,容器存儲層要保持無狀態化。 docker是什么 可以簡單的認為docker容器是一個虛擬機,封裝就是把這個虛擬機打包,打包后能在任何系統跑,docker裝上即用。也可以形象的比喻成一個集裝箱,把所有貨物都打包好放到箱子里,不需要再分類運輸,集裝箱不互相影響 好處 統一應用環境 方便遷移 占用資源少 ...
摘要:使用簽署免費證書后端掘金本文操作在操作系統下完成,需要和超文本傳輸安全協議英語,縮寫,常稱為,紅黑樹深入剖析及實現后端掘金紅黑樹是平衡二叉查找樹的一種。 使用 Lets Encrypt 簽署免費 Https 證書 - 后端 - 掘金 本文操作在Linux操作系統下完成,需要Python和Nginx 超文本傳輸安全協議(英語:Hypertext Transfer Protocol Sec...
閱讀 1017·2021-11-22 14:56
閱讀 983·2021-11-11 16:54
閱讀 7715·2021-09-23 11:55
閱讀 3008·2021-09-22 15:57
閱讀 2793·2021-08-27 16:25
閱讀 672·2019-08-30 15:55
閱讀 1662·2019-08-30 15:43
閱讀 1596·2019-08-30 14:23