亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Docker開(kāi)源之Docker-Compose

IT那活兒 / 973人閱讀
Docker開(kāi)源之Docker-Compose
[
前言
]

“寒江孤影,江湖故人”。

在Docker走馬江湖的青蔥歲月里,面對(duì)云時(shí)代的巍然大勢(shì)下,Docker曾也浪跡江湖,執(zhí)三劍以掃天下,飲馬江湖,仗劍天涯。今朝聲名已著,江湖時(shí)傳,三劍客也。


Docker三劍客之Docker-Machine

DockerMachine:docker-machine就是docker公司官方提出的用于在各種平臺(tái)上快速創(chuàng)建具有docker服務(wù)的技術(shù),主要是解決docker運(yùn)行環(huán)境問(wèn)題。


Docker三劍客之Docker-Compose

Docker-compose:是用來(lái)定義和運(yùn)行多容器應(yīng)用的工具,主要是解決本地docker容器編排問(wèn)題。


Docker三劍客之Docker-Swarm

DockerSwarm:是Docker社區(qū)原生提供的容器集群管理工具,是解決多主機(jī)多個(gè)容器調(diào)度部署的問(wèn)題。


在docker后續(xù)的發(fā)展浪潮中,docker-machine的能力范圍主要用于處理陳舊系統(tǒng)的中docker部署及遠(yuǎn)程系統(tǒng)上配置docker的需求。docker-compose作為docker的一項(xiàng)開(kāi)源項(xiàng)目獨(dú)立維護(hù)。而docker-swarm被docker吸收嵌入到dockerengine中成為docker的子命令。本文僅以docker-compose為出發(fā)點(diǎn),詳細(xì)分析下其功能作用和配置特點(diǎn)。


[
Docker-compose概述
]


Compose是用于定義和運(yùn)行多容器Docker應(yīng)用程序的工具。通過(guò)Compose,您可以使用YAML文件來(lái)配置應(yīng)用程序的服務(wù)。然后,使用一個(gè)命令,就可以從配置中創(chuàng)建并啟動(dòng)所有服務(wù)。


Compose通過(guò)一個(gè)配置文件來(lái)管理多個(gè)Docker容器,在配置文件中,所有的容器通過(guò)services來(lái)定義,然后使用docker-compose腳本來(lái)啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器,非常適合組合使用多個(gè)容器進(jìn)行開(kāi)發(fā)的場(chǎng)景。

使用compose基本上是一個(gè)三步過(guò)程:

1.用dockerfile,或者鏡像定義應(yīng)用程序的環(huán)境,以便在任何地方復(fù)制。


2.在docker-compose.yml中定義組成應(yīng)用程序的服務(wù),以便它們可以在多帶帶的環(huán)境中一起運(yùn)行。


3.運(yùn)行dockercompose up啟動(dòng)并運(yùn)行整個(gè)應(yīng)用程序。

docker-compose將所管理的容器分為3層結(jié)構(gòu):Project 、Service 、Container。docker-compose.yml組成一個(gè)project,project中包括多個(gè)service,每個(gè)service定義了容器運(yùn)行的鏡像(或構(gòu)建鏡像),網(wǎng)絡(luò)端口,文件掛載,參數(shù),依賴等,每個(gè)service又可以包括同一個(gè)鏡像的多個(gè)容器實(shí)例。


[
Docker-compose示例演練
]


部署安裝

因?yàn)閐ocker-compose的運(yùn)行還是依賴docker容器的,故docker也是事先部署好的;另外還要注意的是,docker-compose的運(yùn)行版本也是需要和本地運(yùn)行的dockerengine的版本是統(tǒng)一的。


Docker安裝

$ sudo yum install -y yum-utils


$ sudo yum-config-manager

  --add-repo

  https://download.docker.com/linux/centos/docker-ce.repo


配置dockeryum源:

$ sudo yum install docker-ce docker-ce-cli containerd.io


安裝最新版dockerengine:

安裝指定版本的dockerengine:

注:文件演示docker安裝版本:Dockerversion 18.09.0, build 4d60db4

Docker-compose安裝:

$ yum list docker-ce --showduplicates | sort -r


docker-ce.x86_64 3:18.09.1-3.el7                     docker-ce-stable

docker-ce.x86_64 3:18.09.0-3.el7                     docker-ce-stable

docker-ce.x86_64 18.06.1.ce-3.el7                    docker-ce-stable

docker-ce.x86_64 18.06.0.ce-3.el7                    docker-ce-stable


$ sudo yum install docker-ce-

docker-ce-cli- containerd.io

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/

docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose


注意:要安裝其他版本的Compose,請(qǐng)?zhí)鎿Q1.26.2 為要使用的Compose版本。另外github網(wǎng)絡(luò)連接不好的情況可能下載失敗,可以去github上直接下載上傳到本地服務(wù)器。文中docker-compose安裝版本:docker-composeversion 1.18.0, build 8dd22a9


[
示例演練
]


本次示例采用的是wordpress+mysql部署一個(gè)博客項(xiàng)目:


Docker-compose.yml文件配置內(nèi)容如下:

version: 3.1

services:

wordpress:

  image: wordpress

  restart: always

  ports:

    - 8080:80

  environment:

    WORDPRESS_DB_HOST: db

    WORDPRESS_DB_USER: wp

    WORDPRESS_DB_PASSWORD: 123456

    WORDPRESS_DB_NAME: wordpress

  volumes:

    - wordpress:/var/www/html


db:

  image: mysql:5.7

  restart: always

  environment:

    MYSQL_DATABASE: wordpress

    MYSQL_USER: wp

    MYSQL_PASSWORD: 123456

    MYSQL_RANDOM_ROOT_PASSWORD: 1

  volumes:

    - db:/var/lib/mysql


volumes:

wordpress:

db:


Docker-compose啟動(dòng)wordpress博客項(xiàng)目,這里統(tǒng)稱上述yml文件中描述的服務(wù)都是來(lái)完成博客項(xiàng)目的,其中service有兩個(gè):wordpress服務(wù)和MySQL服務(wù)。


至此我們使用docker-compose來(lái)啟動(dòng)該項(xiàng)目:

#進(jìn)入docker-compose.yml文件所在目錄執(zhí)行命令

$ sudo docker-compose up -d

#或者啟動(dòng)docker-compose.yml文件來(lái)啟動(dòng)

$ sudo docker-compose -f /yml_dir/docker-compose.yml  up -d


查看容器啟動(dòng)情況:

]# docker-compose ps

      Name                       Command               State        Ports        

-------------------------------------------------------------------------------------

wordpress_db_1         docker-entrypoint.sh mysqld      Up      3306/tcp, 33060/tcp

wordpress_wordpress_1  docker-entrypoint.sh apach ...   Up      0.0.0.0:8080->80/tcp


Wordpress頁(yè)面配置展示效果:

從演示的結(jié)果來(lái)看,docker-compose確實(shí)完成了我們期望的工作,在一次部署中完成對(duì)項(xiàng)目中所有服務(wù)的構(gòu)建管控。從服務(wù)器環(huán)境上來(lái)說(shuō),compose使用項(xiàng)目名稱的方式將環(huán)境相互隔離;并且支持環(huán)境變量,方便用戶使用這些變量應(yīng)用在不用的環(huán)境中,用戶自定義設(shè)置變量等方面。從應(yīng)用上看過(guò)了compose的功能特點(diǎn),接下來(lái)我們看看從yml文件配置中看看docker-compose都完成了什么。


[
Yml文件配置概述
]


version:指定docker-compose.yml文件的寫(xiě)法格式

version: 3.1


services:多個(gè)服務(wù)集合,例如文件中wordpress和db都是服務(wù):

services:

wordpress:

db:


image:指定服務(wù)所使用的鏡像:

version: 3.1

services:

wordpress:

  image: wordpress


restart:always :配置重啟,docker每次啟動(dòng)時(shí)會(huì)啟動(dòng)該服務(wù)

restart:always


ports:定義宿主機(jī)端口和容器端口的映射,可使用宿主機(jī)IP+宿主機(jī)端口進(jìn)行訪問(wèn)宿主機(jī)端口:容器端口


environment:環(huán)境變量配置,可以用數(shù)組或字典兩種方式


volumes:卷掛載路徑,定義宿主機(jī)的目錄/文件和容器的目錄/文件的映射  宿主機(jī)


ports:

- 8080:80


environment:

WORDPRESS_DB_HOST: db  #此項(xiàng)配置引用 服務(wù) db的名稱,

WORDPRESS_DB_USER: wp

WORDPRESS_DB_PASSWORD: 123456

WORDPRESS_DB_NAME: wordpress


volumes:#此處wordpress為數(shù)據(jù)卷

- wordpress:/var/www/html


路徑:容器路徑


[
Docker-compose命令概述
]


docker-composepull:拉取服務(wù)里定義的鏡像

docker-composeps :列出project所有運(yùn)行容器(容器名= 目錄名_service_index index表示容器序數(shù),從1開(kāi)始)


docker-composebuild:構(gòu)建/重新構(gòu)建所有鏡像

docker-composestart [serviceName]:?jiǎn)?dòng)已存在但停止的所有service;

(可選)[serviceName]:表示啟動(dòng)某一個(gè)service

docker-composeup -d(相當(dāng)于build + start ):構(gòu)建(容器)并啟動(dòng)(容器)整個(gè)project的所有service

-d:后臺(tái)進(jìn)程

--scale:指定服務(wù)運(yùn)行的容器個(gè)數(shù)

docker-composestop [serviceName]:停止運(yùn)行的service

(可選)[serviceName]:表示停止某一個(gè)service

docker-composerm -f [serviceName]:刪除已停止的所有service

(可選)[serviceName]:表示刪除已停止某一個(gè)service

-f :刪除不在詢問(wèn)

docker-composedown -v(相當(dāng)于stop + rm):停止并移除整個(gè)project的所有services

-v:刪除掛載卷和volunme的鏈接

docker-composelogs [serviceName]:查看服務(wù)內(nèi)所有容器日志輸出

(可選)[serviceName]:表示輸出某一個(gè)service的日志

-f:實(shí)時(shí)輸出日志

docker-composerun [serviceName] command:在某個(gè)服務(wù)上運(yùn)行命令

eg:docker-compose run web ping www.baidu.com

docker-composeexec [serviceName] sh:進(jìn)入到某個(gè)容器

--index:2 :當(dāng)服務(wù)內(nèi)有多個(gè)容器時(shí),需要指定第幾個(gè),默認(rèn)是第一個(gè)

eg:docker-composeexec --index=2 web sh

docker-composerestart [serviceName] : 重啟服務(wù)

docker-composeconfig:驗(yàn)證和查看compose文件

docker-compose images:列出所用的鏡像

docker-cpmposescale:設(shè)置服務(wù)個(gè)數(shù)Eg:docker-compose scale web=2 worker=3

docker-composepause [serviceName]:暫停服務(wù)

docker-composeunpause [serviceName]:恢復(fù)服務(wù)


[
總結(jié)
]


通過(guò)本次演練完整了體現(xiàn)了docker-compose在單臺(tái)主機(jī)上運(yùn)行多個(gè)獨(dú)立環(huán)境的能力及環(huán)境變量設(shè)置等有力手段,其實(shí)compose在對(duì)數(shù)據(jù)卷的使用及只重新創(chuàng)建改變的容器方式也極大的提高了compose的使用便利性。但局限性也很明顯就是單臺(tái)服務(wù)器上部署,無(wú)法保證高可用性,故而在越來(lái)越多的集群方式的環(huán)境下,使用場(chǎng)景也變的單一。所以在后續(xù)的使用中,要切合場(chǎng)景要求,一切以現(xiàn)場(chǎng)實(shí)際為出發(fā)點(diǎn),提出有效正確的方案。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/130141.html

相關(guān)文章

  • 開(kāi)發(fā)中常用服務(wù) docker-compose.yml 配置文件

    摘要:常用服務(wù)配置一些基礎(chǔ)服務(wù)的配置文件,方便在一臺(tái)新電腦上快速開(kāi)始工作不必輸入一長(zhǎng)串命令來(lái)啟動(dòng)對(duì)應(yīng)服務(wù),并且可以做到持久化。 docker-compose 常用服務(wù)配置 一些基礎(chǔ)服務(wù)的docker-compose配置文件,方便在一臺(tái)新電腦上快速開(kāi)始工作 不必輸入一長(zhǎng)串docker命令來(lái)啟動(dòng)對(duì)應(yīng)服務(wù),并且可以做到持久化。 代碼托管在 https://github.com/shiguanghu...

    lixiang 評(píng)論0 收藏0
  • vue項(xiàng)目前端錯(cuò)誤收集sentry

    摘要:我創(chuàng)建了一個(gè)名為的項(xiàng)目。錯(cuò)誤信息查看在后臺(tái)找到我們的項(xiàng)目,點(diǎn)擊進(jìn)去就能看到多了一條錯(cuò)誤信息。它由以下幾部分組成,分別是協(xié)議公鑰私鑰主機(jī)路徑一般為空項(xiàng)目。 sentry簡(jiǎn)介 Sentry 是一個(gè)開(kāi)源的錯(cuò)誤追蹤工具,可以幫助開(kāi)發(fā)人員實(shí)時(shí)監(jiān)控和修復(fù)系統(tǒng)中的錯(cuò)誤。其專注于錯(cuò)誤監(jiān)控以及提取一切事后處理所需的信息;支持幾乎所有主流開(kāi)發(fā)語(yǔ)言(JS/Java/Python/php)和平臺(tái), 并提供了w...

    RaoMeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<