Docker 自修筆記(二)

2021-09-30 13:35:39 字數 2837 閱讀 2584

本部落格為jdgan自修docker的筆記,如有粗鄙之處,還請見諒~

閱讀本部落格前,請確定掌握了前一篇blog:docker配置及安裝,最好順便還掌握了分享docker映象。

乙個實際的應用裡,我們可能需要執行很多很多個服務,需要實現多個服務之間的資料傳輸,資源共享。那麼我們就要對這些服務進行管理,而docker平台就可以非常便利的對服務進行管理和維護。

為了實現對容器和服務的管理,docker需要用到docker-compose.yml。[yaml]

這個檔案的內容一般如下:

version: "3"

services:

web:

image: $username/$repository:$tag

deploy:

replicas: 5

resources:

limits:

cpus: "0.1"

memory: 50m

restart_policy:

condition: on-failure

ports:

- "80:80"

networks:

- webnet

networks:

webnet:

下面解釋一下上面檔案的描述:

新建檔案docker-compose.yml,並放到專案目錄下。

在部署執行群服務之前,首先執行:

$ docker swarm init
然後就可以進行部署:

$ docker stack deploy -c docker-compose

.yml getstartedlab

creating network getstartedlab_webnet

creating service getstartedlab_web

o(^▽^)o 啟動成功! 執行ps命令檢視。

$ docker stack ps getstartedlab

id name image node desired state current state error ports

muc0g4py7u6g getstartedlab_web.1 username/test:share moby running running 3 seconds ago

sil8jzmjqxpt getstartedlab_web.2 username/test:share moby running running 2 seconds ago

vryfp1iz6e5a getstartedlab_web.3 username/test:share moby running running 2 seconds ago

nb3bnumfosed getstartedlab_web.4 username/test:share moby running running 3 seconds ago

khoxuflpcqgb getstartedlab_web.5 username/test:share moby running running 3 seconds ago

docker可以實現動態增減映象,避免了增刪容器時出現服務不可用的情況。修改的方法就是直接修改配置檔案docker-compose.yml,修改完replicas的值後,直接再次執行:

$ docker stack deploy -c docker-compose

.yml getstartedlab

docker就會自動更新容器的數量。

例如上面的栗子中修改replicas: 2,再次執行docker stack ps

$ docker stack ps getstartedlab

id name image node desired state current state error ports

muc0g4py7u6g getstartedlab_web.1 username/test:share moby running running 13 minutes ago

nb3bnumfosed getstartedlab_web.4 username/test:share moby running running 13 minutes ago

o(^▽^)o 簡單快捷,舒適平滑。

Docker 自修筆記(四)

本部落格為jdgan自修docker的筆記,如有粗鄙之處,還請見諒 閱讀本部落格前,請確定掌握了前一篇blog docker 集群。前面在上一章裡,已經通過docker stack deploy部署了乙個棧,但是實際應用當中,我們不可能只有乙個棧,所以本章就多個棧的情況,進行介紹。開啟前一章的doc...

Docker學習筆記(二)

docker使用cgroups提供容器隔離。cgroups的作用 生搬硬套 1.限制程序組的資源占用 cpu,記憶體 2.為程序組製作pid,uts,ipc,網路,使用者及裝載名字空間?一直出現的關鍵字是名字空間,這裡的名字空間是核心裡的名字空間。還有乙個關鍵字隔離。某乙個pid命名空間允許它裡面的...

Docker學習筆記(二)

docker的核心技術在於容器 container 的應用,之所以作為輕量級的虛擬應用,在於其所有的程式執行均承載在宿主機的硬體環境之上,區別於傳統的虛擬機器技術。一 容器的建立 列出本機上有的存有的映象 i 開啟容器的標準輸入。t 告訴docker為容器建立乙個命令列終端 name 指定容器名稱,...