本部落格為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 指定容器名稱,...