DOCKER 總結(jié)

I. 簡介

Docker 是一個(gè)開源的應(yīng)用容器引擎拖云,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中顽馋,然后發(fā)布到任何流行的 Linux或Windows 機(jī)器上尘喝,也可以實(shí)現(xiàn)虛擬化压昼。容器是完全使用沙箱機(jī)制炕倘,相互之間不會(huì)有任何接口钧大。

由于本地開發(fā)好的程序往往都需要部署到服務(wù)器上進(jìn)行運(yùn)行,這就導(dǎo)致了程序需要運(yùn)行在不同的環(huán)境上罩旋,這通常是一個(gè)令人頭痛的事情啊央。在過去,開發(fā)團(tuán)隊(duì)需要清楚的告訴運(yùn)維部署團(tuán)隊(duì)涨醋,其所使用的全部配置文件+所有軟件環(huán)境瓜饥。不過,即便如此浴骂,仍然常常發(fā)生部署失敗的狀況乓土。

于是乎,虛擬化技術(shù)應(yīng)運(yùn)而生。開發(fā)團(tuán)隊(duì)將開發(fā)好的程序在虛擬機(jī)上運(yùn)行趣苏,這樣就能解決運(yùn)維的問題狡相。但是由于虛擬機(jī)技術(shù)過重的特性導(dǎo)致了其資源占用多、冗余步驟多以及啟動(dòng)慢的缺陷拦键。而這個(gè)時(shí)候一種新的虛擬化技術(shù)搭配上容器化的思想的產(chǎn)品便出現(xiàn)了谣光,而它就是Docker。

下圖是虛擬機(jī)技術(shù)和容器化技術(shù)架構(gòu)的對(duì)比芬为。我們可以得出以下總結(jié):

  • 傳統(tǒng)虛擬機(jī)技術(shù)是虛擬出一套硬件后萄金,在其上運(yùn)行一個(gè)完整操作系統(tǒng),在該系統(tǒng)上再運(yùn)行所需應(yīng)用進(jìn)程
  • 而容器內(nèi)的應(yīng)用進(jìn)程直接運(yùn)行于宿主的內(nèi)核媚朦,容器內(nèi)沒有自己的內(nèi)核氧敢,而且也沒有進(jìn)行硬件虛擬。 因此容器要比傳統(tǒng)虛擬機(jī)更為輕便询张。
  • 每個(gè)容器之間互相隔離孙乖,每個(gè)容器有自己的文件系統(tǒng) ,容器之間進(jìn)程不會(huì)相互影響份氧,能區(qū)分計(jì)算資源唯袄。

[圖片上傳失敗...(image-efadd2-1643314980201)]
](https://upload-images.jianshu.io/upload_images/646931-4b1431b77887632f.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

于是乎相比于虛擬機(jī)技術(shù),容器化技術(shù)具有以下優(yōu)勢:

  • 更快速的應(yīng)用交付和部署

    傳統(tǒng)的應(yīng)用開發(fā)完成后蜗帜,需要提供一堆安裝程序和配置說明文檔恋拷,安裝部署后需根據(jù)配置文檔進(jìn)行繁雜 的配置才能正常運(yùn)行。Docker化之后只需要交付少量容器鏡像文件厅缺,在正式生產(chǎn)環(huán)境加載鏡像并運(yùn)行即 可蔬顾,應(yīng)用安裝配置在鏡像里已經(jīng)內(nèi)置好,大大節(jié)省部署配置和測試驗(yàn)證時(shí)間

  • 更便捷的升級(jí)和擴(kuò)縮容

    隨著微服務(wù)架構(gòu)和Docker的發(fā)展湘捎,大量的應(yīng)用會(huì)通過微服務(wù)方式架構(gòu)诀豁,應(yīng)用的開發(fā)構(gòu)建將變成搭樂高積 木一樣,每個(gè)Docker容器將變成一塊“積木”窥妇,應(yīng)用的升級(jí)將變得非常容易舷胜。當(dāng)現(xiàn)有的容器不足以支撐業(yè) 務(wù)處理時(shí),可通過鏡像運(yùn)行新的容器進(jìn)行快速擴(kuò)容活翩,使應(yīng)用系統(tǒng)的擴(kuò)容從原先的天級(jí)變成分鐘級(jí)甚至秒級(jí)

  • 更簡單的系統(tǒng)運(yùn)維

    應(yīng)用容器化運(yùn)行后逞带,生產(chǎn)環(huán)境運(yùn)行的應(yīng)用可與開發(fā)、測試環(huán)境的應(yīng)用高度一致纱新,容器會(huì)將應(yīng)用程序相關(guān) 的環(huán)境和狀態(tài)完全封裝起來,不會(huì)因?yàn)榈讓踊A(chǔ)架構(gòu)和操作系統(tǒng)的不一致性給應(yīng)用帶來影響穆趴,產(chǎn)生新的 BUG脸爱。當(dāng)出現(xiàn)程序異常時(shí),也可以通過測試環(huán)境的相同容器進(jìn)行快速定位和修復(fù)

  • 更高效的計(jì)算資源利用

    Docker是內(nèi)核級(jí)虛擬化未妹,其不像傳統(tǒng)的虛擬化技術(shù)一樣需要額外的Hypervisor [管理程序] 支持簿废,所以在 一臺(tái)物理機(jī)上可以運(yùn)行很多個(gè)容器實(shí)例空入,可大大提升物理服務(wù)器的CPU和內(nèi)存的利用率

相關(guān)網(wǎng)站

II. 基本原理

如下圖所示,Docker使用客戶端-服務(wù)器(C/S)架構(gòu)模式族檬,使用遠(yuǎn)程API來管理和創(chuàng)建Docker容器歪赢。服務(wù)器端分為Docker daemon, Image和Container三個(gè)部分。此外還有Docker Registry单料。

docker組成部分

下面首先來介紹一下Docker中的主要概念

  1. 鏡像(Image)

    Docker 鏡像(Image)就是一個(gè)只讀的模板埋凯。鏡像可以用來創(chuàng)建 Docker 容器,一個(gè)鏡像可以創(chuàng)建很 多容器扫尖。 就好似 Java 中的 類和對(duì)象白对,類就是鏡像,容器就是對(duì)象换怖!

  2. 容器(Container)

    Docker 利用容器(Container)獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用甩恼。容器是用鏡像創(chuàng)建的運(yùn)行實(shí)例。 它可以被啟動(dòng)沉颂、開始条摸、停止、刪除铸屉。每個(gè)容器都是相互隔離的钉蒲,保證安全的平臺(tái)。 可以把容器看做是一個(gè)簡易版的 Linux 環(huán)境(包括root用戶權(quán)限抬探、進(jìn)程空間子巾、用戶空間和網(wǎng)絡(luò)空間等)和運(yùn)行在其中的應(yīng)用程序。小压。 容器的定義和鏡像幾乎一模一樣线梗,也是一堆層的統(tǒng)一視角,唯一區(qū)別在于容器的最上面那一層是可讀可寫的怠益。

  3. Registry和倉庫(Repository)

    倉庫(Repository)是集中存放鏡像文件的場所仪搔。 倉庫(Repository)和倉庫注冊(cè)服務(wù)器(Registry)是有區(qū)別的。倉庫注冊(cè)服務(wù)器上往往存放著多個(gè)倉庫蜻牢,每個(gè)倉庫中又包含了多個(gè)鏡像烤咧,每個(gè)鏡像有不同的標(biāo)簽(tag)。 倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式抢呆。 最大的公開倉庫是 Docker Hub(https://hub.docker.com/)煮嫌,存放了數(shù)量龐大的鏡像供用戶下載。%EF%BC%8C%E5%AD%98%E6%94%BE%E4%BA%86%E6%95%B0%E9%87%8F%E5%BA%9E%E5%A4%A7%E7%9A%84%E9%95%9C%E5%83%8F%E4%BE%9B%E7%94%A8%E6%88%B7%E4%B8%8B%E8%BD%BD%E3%80%82) 國內(nèi)的公開倉庫包括阿里云 抱虐、網(wǎng)易云等昌阿。

Docker的運(yùn)行原理如下:客戶端可以將docker命令發(fā)送到服務(wù)器端的Docker daemon上,再由Docker damon根據(jù)指令創(chuàng)建、選擇或者從Docker倉庫中拉扰潮(pull)鏡像灶轰。接著客戶端可以通過鏡像創(chuàng)建容器。當(dāng)我們需要使用程序時(shí)刷钢,運(yùn)行相應(yīng)的容器即可笋颤。

小結(jié)

需要正確的理解倉儲(chǔ)/鏡像/容器這幾個(gè)概念 :

  • Docker 本身是一個(gè)容器運(yùn)行載體或稱之為管理引擎。我們把應(yīng)用程序和配置依賴打包好形成一個(gè) 可交付的運(yùn)行環(huán)境内地,這個(gè)打包好的運(yùn)行環(huán)境就似乎image鏡像文件伴澄。只有通過這個(gè)鏡像文件才能生成Docker容器。image 文件可以看作是容器的模板瓤鼻。Docker 根據(jù) image 文件生成容器的實(shí)例秉版。 同一個(gè) image 文件,可以生成多個(gè)同時(shí)運(yùn)行的容器實(shí)例茬祷。
  • image 文件生成的容器實(shí)例清焕,本身也是一個(gè)文件,稱為鏡像文件祭犯。一個(gè)容器運(yùn)行一種服務(wù)秸妥,當(dāng)我們需要的時(shí)候,就可以通過docker客戶端創(chuàng)建一個(gè)對(duì)應(yīng)的運(yùn)行實(shí)例沃粗, 也就是我們的容器
  • 至于倉庫粥惧,就是放了一堆鏡像的地方,我們可以把鏡像發(fā)布到倉庫中最盅,需要的時(shí)候從倉庫中拉下來 就可以了突雪。

III. 基本使用

  1. Docker安裝

    詳見:https://docs.docker.com/engine/install/centos/

  2. 幫助命令

    docker version # 顯示Docker版本信息
    docker info # 顯示Docker系統(tǒng)信息,包括鏡像和容器數(shù)
    docker --help # 幫助
    
    
  3. 鏡像命令

    docker images # 列出本機(jī)所有鏡像
    
    # 可選項(xiàng)
    -a:列出本地所有鏡像
    -q: 只顯示鏡像id
    --digests: 顯示鏡像的摘要信息
    
    # 搜索鏡像
    docker search image_name # 在DockerHub倉庫中搜索某個(gè)鏡像
    
    # 下載(拉任屑)鏡像
    docker pull image_name:edition # 在DockeHub上下載某個(gè)鏡像
    
    # 刪除鏡像
    docker rmi -f image_id # 刪除單個(gè)鏡像
    docker rmi -f image_name:tag # 刪除多個(gè)鏡像
    docker rmi -f $(docker images -qa) # 刪除全部鏡像
    
    
  4. 容器命令

    • 以某個(gè)鏡像為基礎(chǔ)生成并運(yùn)行容器
       docker run [OPTIONS] IMAGE [COMMAND][ARG...]
    
       # 常用參數(shù)說明 
       --name="Name" # 給容器指定一個(gè)名字
       -d # 后臺(tái)方式運(yùn)行容器咏删,并返回容器的id
       -i # 以交互模式運(yùn)行容器,通常和 -t 一起使用
       -t  # 給容器重新分配一個(gè)終端问词,通常和 -i 一起使用
       -P  # 隨機(jī)端口映射(大寫)
       -p # 指定端口映射(小結(jié))督函,一般可以有四種寫法
           ip:hostPort:containerPort 
           ip:containerPort 
           hostPort:containerPort (常用) containerPort
    
       # 例子
       docker run -it centos /bin/bash # 使用centos進(jìn)行用交互模式啟動(dòng)容器,在容器內(nèi)執(zhí)行/bin/bash命令
    
    
    • 列出所有容器
       docker ps [OPTIONS]
    
       # 常用參數(shù)說明
    
       -a # 列出當(dāng)前所有正在運(yùn)行的容器 + 歷史運(yùn)行過的容器
       -l # 顯示最近創(chuàng)建的容器
       -n=? # 顯示最近n個(gè)創(chuàng)建的容器
       -q # 靜默模式激挪,只顯示容器編號(hào)辰狡。
    
    
    • 退出容器
       exit # 容器停止退出
       ctrl+P+Q # 容器不停止退出
    
    - **啟動(dòng)已停止的容器**
    
    ```shell
    docker start (容器id or 容器名) # 啟動(dòng)容器
    docker restart (容器id or 容器名) # 重啟容器
    docker stop (容器id or 容器名)  # 停止容器
    docker kill (容器id or 容器名) # 強(qiáng)制停止容器
    
    
    • 刪除容器
    docker rm 容器id # 刪除指定容器
    docker rm -f $(docker ps -a -q) # 刪除所有容器 
    docker ps -a -q|xargs docker rm # 刪除所有容器
    
    
  5. 常用命令總結(jié)

    docker常用命令1

    [圖片上傳中...(image-f44fd8-1642627027451-0)]

docker常用命令1

III. 容器數(shù)據(jù)卷

在外面使用容器的時(shí)候,我們不希望容器中的數(shù)據(jù)在容器被刪除后也一并刪除了垄分,這時(shí)候我們就可以通過使用容器數(shù)據(jù)卷宛篇,將數(shù)據(jù)儲(chǔ)存在本地并用Docker將其掛載到容器中,這樣我們即使刪除了容器薄湿,數(shù)據(jù)也依舊存在服務(wù)器中叫倍,也就實(shí)現(xiàn)了數(shù)據(jù)持久化豌鸡。

特點(diǎn)

  • 數(shù)據(jù)卷可在容器之間共享或重用數(shù)據(jù)
  • 卷中的更改可以直接生效
  • 數(shù)據(jù)卷中的更改不會(huì)包含在鏡像的更新中
  • 數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止

容器數(shù)據(jù)卷掛載命令(-v)

# 匿名掛載 
-v 容器內(nèi)路徑 docker run -d -P --name nginx01 -v /etc/nginx nginx

# 匿名掛載的缺點(diǎn),就是不好維護(hù)段标,通常使用命令 docker volume維護(hù) 
docker volume ls

# 具名掛載 -v 卷名:/容器內(nèi)路徑 
docker run -d -P --name nginx02 -v nginxconfig:/etc/nginx nginx

# 查看掛載的路徑 [root@kuangshen ~]# 
docker volume inspect nginxconfig

# 怎么判斷掛載的是卷名而不是本機(jī)目錄名? 
不是/開始就是卷名炉奴,是/開始就是目錄名

# 改變文件的讀寫權(quán)限 
# ro: readonly 
# rw: readwrite 
# 指定容器對(duì)我們掛載出來的內(nèi)容的讀寫權(quán)限 
docker run -d -P --name nginx02 -v nginxconfig:/etc/nginx:ro nginx 
docker run -d -P --name nginx02 -v nginxconfig:/etc/nginx:rw nginx

Dockerfile 掛載容器數(shù)據(jù)卷

# 1逼庞、我們?cè)谒拗鳈C(jī) /home 目錄下新建一個(gè) docker-test-volume文件夾 
[root@kuangshen home]# mkdir docker-test-volume
# 說明:在編寫DockerFile文件中使用 VOLUME 指令來給鏡像添加一個(gè)或多個(gè)數(shù)據(jù)卷 
VOLUME["/dataVolumeContainer1","/dataVolumeContainer2","/dataVolumeContainer 3"] # 出于可移植和分享的考慮,我們之前使用的 -v 主機(jī)目錄:容器目錄 這種方式不能夠直接在 DockerFile中實(shí)現(xiàn)瞻赶。 # 由于宿主機(jī)目錄是依賴于特定宿主機(jī)的赛糟,并不能夠保證在所有宿主機(jī)上都存在這樣的特定目錄.

# 2、編寫DockerFile文件 
[root@kuangshen docker-test-volume]# pwd /home/docker-test-volume 
[root@kuangshen docker-test-volume]# vim dockerfile1 
[root@kuangshen docker-test-volume]# cat dockerfile1 

# volume test 
FROM centos VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"] 
CMD echo "-------end------" 
CMD /bin/bash

# 3砸逊、build后生成鏡像璧南,獲得一個(gè)新鏡像 kuangshen/centos
docker build -f /home/docker-test-volume/dockerfile1 -t kuangshen/centos . # 注意最后有個(gè).

IV. 構(gòu)建鏡像:DOCKERFILE

我們除了可以從倉庫中拉取鏡像以外,我們也可以自己創(chuàng)建鏡像师逸,這就要用到Docerfile司倚。

dockerfile是用來構(gòu)建Docker鏡像的構(gòu)建文件,是由一系列命令和參數(shù)構(gòu)成的腳本篓像。

構(gòu)建步驟:

  1. 編寫DockerFile文件
  2. docker build 構(gòu)建鏡像
  3. docker run

DOCKERFILE構(gòu)建過程

基礎(chǔ)知識(shí):

  • 每條保留字指令都必須為大寫字母且后面要跟隨至少一個(gè)參數(shù)
  • 指令按照從上到下动知,順序執(zhí)行
  • 表示注釋 每條指令都會(huì)創(chuàng)建一個(gè)新的鏡像層,并對(duì)鏡像進(jìn)行提交

流程:

  1. docker從基礎(chǔ)鏡像運(yùn)行一個(gè)容器
  2. 執(zhí)行一條指令并對(duì)容器做出修改
  3. 執(zhí)行類似 docker commit 的操作提交一個(gè)新的鏡像層
  4. Docker再基于剛提交的鏡像運(yùn)行一個(gè)新容器
  5. 執(zhí)行dockerfile中的下一條指令直到所有指令都執(zhí)行完成员辩!

說明:

  • 從應(yīng)用軟件的角度來看盒粮,DockerFile,docker鏡像與docker容器分別代表軟件的三個(gè)不同階段奠滑。
  • DockerFile 是軟件的原材料 (代碼) Docker 鏡像則是軟件的交付品 (.apk)
  • Docker 容器則是軟件的運(yùn)行狀態(tài) (客戶下載安裝執(zhí)行)
  • DockerFile 面向開發(fā)丹皱,Docker鏡像成為交付標(biāo)準(zhǔn),Docker容器則涉及部署與運(yùn)維宋税,三者缺一不可摊崭!
Dockerfile
  • DockerFile

    需要定義一個(gè)DockerFile,DockerFile定義了進(jìn)程需要的一切東西弃甥。DockerFile涉及的內(nèi)容 包括執(zhí)行代碼或者是文件爽室、環(huán)境變量、依賴包淆攻、運(yùn)行時(shí)環(huán)境阔墩、動(dòng)態(tài)鏈接庫、操作系統(tǒng)的發(fā)行版瓶珊、服務(wù)進(jìn) 程和內(nèi)核進(jìn)程(當(dāng)引用進(jìn)行需要和系統(tǒng)服務(wù)和內(nèi)核進(jìn)程打交道啸箫,這時(shí)需要考慮如何設(shè)計(jì) namespace的權(quán) 限控制)等等。

  • Docker鏡像

    在DockerFile 定義了一個(gè)文件之后伞芹,Docker build 時(shí)會(huì)產(chǎn)生一個(gè)Docker鏡像忘苛,當(dāng)運(yùn)行 Docker 鏡像時(shí)蝉娜,會(huì)真正開始提供服務(wù);

  • Docker容器

    容器是直接提供服務(wù)的

DOCKERFILE指令

FROM  # 基礎(chǔ)鏡像扎唾,當(dāng)前新鏡像是基于哪個(gè)鏡像的
MAINTAINER # 鏡像維護(hù)者的姓名混合郵箱地址
RUN  # 容器構(gòu)建時(shí)需要運(yùn)行的命令
EXPOSE  # 當(dāng)前容器對(duì)外保留出的端口
WORKDIR # 指定在創(chuàng)建容器后召川,終端默認(rèn)登錄的進(jìn)來工作目錄,一個(gè)落腳點(diǎn)
ENV  # 用來在構(gòu)建鏡像過程中設(shè)置環(huán)境變量
ADD # 將宿主機(jī)目錄下的文件拷貝進(jìn)鏡像且ADD命令會(huì)自動(dòng)處理URL和解壓tar壓縮包
COPY  # 類似ADD胸遇,拷貝文件和目錄到鏡像中荧呐!
VOLUME  # 容器數(shù)據(jù)卷,用于數(shù)據(jù)保存和持久化工作
CMD # 指定一個(gè)容器啟動(dòng)時(shí)要運(yùn)行的命令纸镊,dockerFile中可以有多個(gè)CMD指令倍阐,但只有最后一個(gè)生效!
ENTRYPOINT  # 指定一個(gè)容器啟動(dòng)時(shí)要運(yùn)行的命令逗威!和CMD一樣
ONBUILD # 當(dāng)構(gòu)建一個(gè)被繼承的DockerFile時(shí)運(yùn)行命令峰搪,父鏡像在被子鏡像繼承后,父鏡像的ONBUILD被觸發(fā)

dockerfile指令

V. DOCKER 網(wǎng)絡(luò)

在實(shí)際場景中凯旭,我們會(huì)遇到多個(gè)Container之間通訊的問題概耻。而Docker網(wǎng)絡(luò)就是用于解決此問題的技術(shù)。docker會(huì)給每個(gè)容器都分配一個(gè)ip尽纽,且容器和容器之間是可以互相訪問的咐蚯。

Docker網(wǎng)絡(luò)原理

每一個(gè)安裝了Docker的linux主機(jī)都有一個(gè)docker0的虛擬網(wǎng)卡。這是個(gè)橋接網(wǎng)卡弄贿,使用了veth-pair 技術(shù)春锋。Docker使用Linux橋接,在宿主機(jī)虛擬一個(gè)Docker容器網(wǎng)橋(docker0)差凹,Docker啟動(dòng)一個(gè)容器時(shí)會(huì)根據(jù) Docker網(wǎng)橋的網(wǎng)段分配給容器一個(gè)IP地址期奔,稱為Container-IP,同時(shí)Docker網(wǎng)橋是每個(gè)容器的默認(rèn)網(wǎng) 關(guān)危尿。因?yàn)樵谕凰拗鳈C(jī)內(nèi)的容器都接入同一個(gè)網(wǎng)橋呐萌,這樣容器之間就能夠通過容器的Container-IP直接通信。

docker網(wǎng)絡(luò)

Docker容器網(wǎng)絡(luò)就很好的利用了Linux虛擬網(wǎng)絡(luò)技術(shù)谊娇,在本地主機(jī)和容器內(nèi)分別創(chuàng)建一個(gè)虛擬接口肺孤,并 讓他們彼此聯(lián)通(這樣一對(duì)接口叫veth pair);

Docker中的網(wǎng)絡(luò)接口默認(rèn)都是虛擬的接口济欢。虛擬接口的優(yōu)勢就是轉(zhuǎn)發(fā)效率極高(因?yàn)長inux是在內(nèi)核中 進(jìn)行數(shù)據(jù)的復(fù)制來實(shí)現(xiàn)虛擬接口之間的數(shù)據(jù)轉(zhuǎn)發(fā)赠堵,無需通過外部的網(wǎng)絡(luò)設(shè)備交換),對(duì)于本地系統(tǒng)和容 器系統(tǒng)來說法褥,虛擬接口跟一個(gè)正常的以太網(wǎng)卡相比并沒有區(qū)別茫叭,只是他的速度快很多。

[圖片上傳中...(image-41d42a-1642627027452-2)]

VI. 定義并運(yùn)行多容器:DOCKER COMPOSE

Docker Compose是一個(gè)用于定義并運(yùn)行多容器應(yīng)用的工具半等。

Docker Compose的步驟如下

  1. 為每個(gè)容器(自定義容器)編寫Dockerfile
  2. 編寫docker-compose.yml文件揍愁,用于定義如何運(yùn)行多容器以及定義容器配置
  3. 執(zhí)行docker-compose up命令呐萨,用于啟動(dòng)項(xiàng)目。

NOTE: Compose :重要的概念莽囤。

  • 服務(wù)services: 容器谬擦。應(yīng)用。(web朽缎、redis怯屉、mysql….)
  • 項(xiàng)目project: 一組關(guān)聯(lián)的容器。 博客饵沧。web、mysql赌躺。

docker-compose.yml編寫

# 3層狼牺!
version: '' # 版本 
services: # 服務(wù) 
    服務(wù)1: web 
        # 服務(wù)配置 
        images 
        build 
        network 
        .....
    服務(wù)2: redis 
        ....
    服務(wù)3: redis
# 其他配置 網(wǎng)絡(luò)/卷、全局規(guī)則 
volumes: 
networks: 
configs:

Note: docker-compose會(huì)自動(dòng)為多容器之間創(chuàng)建網(wǎng)絡(luò)礼患,保證通訊是钥。

VII. 集群部署:DOCKER SWARM

Docker Swarm 是Docker 的集群管理工具。 它將Docker 主機(jī)池轉(zhuǎn)變?yōu)閱蝹€(gè)虛擬Docker 主機(jī)缅叠。 Docker Swarm 提供了標(biāo)準(zhǔn)的Docker API悄泥,所有任何已經(jīng)與Docker 守護(hù)程序通信的工具都可以使用Swarm 輕松地?cái)U(kuò)展到多個(gè)主機(jī)。

VIII. 總結(jié)

Docker 是一個(gè)開源的應(yīng)用容器引擎肤粱,它的出現(xiàn)大大簡化了運(yùn)維的難度弹囚,提高了運(yùn)維效率。過去我們需要在服務(wù)器上安裝程序所需要的所有依賴领曼,而如今我們只需要編寫好docker-compose和Dockefile的腳本鸥鹉,就可以使程序一鍵跑通。在企業(yè)級(jí)的應(yīng)用中庶骄,我們必然會(huì)驚顫使用到Docker和容器化技術(shù)毁渗。

IX. 參考

狂神說

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市单刁,隨后出現(xiàn)的幾起案子灸异,更是在濱河造成了極大的恐慌,老刑警劉巖羔飞,帶你破解...
    沈念sama閱讀 223,002評(píng)論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肺樟,死亡現(xiàn)場離奇詭異,居然都是意外死亡褥傍,警方通過查閱死者的電腦和手機(jī)儡嘶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恍风,“玉大人蹦狂,你說我怎么就攤上這事誓篱。” “怎么了凯楔?”我有些...
    開封第一講書人閱讀 169,787評(píng)論 0 365
  • 文/不壞的土叔 我叫張陵窜骄,是天一觀的道長。 經(jīng)常有香客問我摆屯,道長邻遏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評(píng)論 1 300
  • 正文 為了忘掉前任虐骑,我火速辦了婚禮准验,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘廷没。我一直安慰自己糊饱,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評(píng)論 6 398
  • 文/花漫 我一把揭開白布颠黎。 她就那樣靜靜地躺著另锋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狭归。 梳的紋絲不亂的頭發(fā)上夭坪,一...
    開封第一講書人閱讀 52,821評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音过椎,去河邊找鬼室梅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛疚宇,可吹牛的內(nèi)容都是我干的竞惋。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼灰嫉,長吁一口氣:“原來是場噩夢啊……” “哼拆宛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讼撒,我...
    開封第一講書人閱讀 40,196評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤愉昆,失蹤者是張志新(化名)和其女友劉穎煎娇,沒想到半個(gè)月后泽示,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體付鹿,經(jīng)...
    沈念sama閱讀 46,716評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評(píng)論 3 343
  • 正文 我和宋清朗相戀三年炎滞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敢艰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,928評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡册赛,死狀恐怖钠导,靈堂內(nèi)的尸體忽然破棺而出震嫉,到底是詐尸還是另有隱情,我是刑警寧澤牡属,帶...
    沈念sama閱讀 36,583評(píng)論 5 351
  • 正文 年R本政府宣布票堵,位于F島的核電站,受9級(jí)特大地震影響逮栅,放射性物質(zhì)發(fā)生泄漏悴势。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評(píng)論 3 336
  • 文/蒙蒙 一措伐、第九天 我趴在偏房一處隱蔽的房頂上張望特纤。 院中可真熱鬧,春花似錦侥加、人聲如沸叫潦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至短蜕,卻和暖如春氢架,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朋魔。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評(píng)論 1 274
  • 我被黑心中介騙來泰國打工岖研, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人警检。 一個(gè)月前我還...
    沈念sama閱讀 49,378評(píng)論 3 379
  • 正文 我出身青樓孙援,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扇雕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拓售,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容