小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Docker學(xué)習(xí)筆記之--借助Docker Compose進(jìn)行多容器部署(環(huán)境:centos7)

 小仙女本仙人 2021-03-14

接下來(lái)演示借助Docker Compose進(jìn)行多容器部署。

前邊的章節(jié)演示盡管可以實(shí)現(xiàn)需求功能,但是在生產(chǎn)環(huán)境當(dāng)中,維護(hù)起來(lái)顯然很麻煩,所以下邊演示借助Docker Compose功能,實(shí)現(xiàn)一鍵部署!

一個(gè)完整的項(xiàng)目需要多個(gè)容器(比如Web、Nginx、SqlServer、Mysql、Redis等)協(xié)調(diào)運(yùn)行相互支持,一個(gè)個(gè)的部署很顯然會(huì)很麻煩,而且還要為各個(gè)容器之間的網(wǎng)絡(luò)連接而苦惱。

還好,借助Docker Compose,我們可以編寫(xiě)一個(gè)docker-compose.yml文件,可以輕松實(shí)現(xiàn)上邊所有容器的一鍵部署。

第一步:安裝 Docker Compose

依次執(zhí)行以下命令:截止目前最新版本是 1.27.4

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

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

docker-compose --version

第二步:編輯 docker-compose.yml文件

在服務(wù)器上的web應(yīng)用根目錄下新建一個(gè) docker-compose.yml文件,跟Dockerfile文件放在同一個(gè)目錄下即可!

然后編寫(xiě)如下內(nèi)容:

 version:         external:          image: /myapidemo:             -           - /root/apilogs/logs:/app/          -                   -          -           - /root/nginx/www:/usr/share/nginx/         - /root/nginx/conf.d/.conf:/etc/nginx/conf.d/         - /root/nginx/logs://log/         - /root/nginx/certs:/etc/nginx/          -                 image: mysql:            -             TZ: Asia/          -                   -        command: redis-server --requirepass                - test_network

代碼解釋?zhuān)阂环輼?biāo)準(zhǔn)配置文件應(yīng)該包含 version、services、networks 三大部分,其中最關(guān)鍵的就是 services 和 networks 兩個(gè)部分,這是它基本結(jié)構(gòu)

version: '3.8'   表示版本,截止目前最新是 3.8,可以參考文檔:https://docs./compose/compose-file/

services  節(jié)點(diǎn)下定義每個(gè)容器服務(wù),其中:myapidemo、nginxapi、mysql、redistest等表示容器名稱

image: 1312958948/myapidemo:1.1    指定鏡像名稱和tag版本,如果該鏡像不存在,則會(huì)自動(dòng)拉取或創(chuàng)建鏡像;如果已經(jīng)存在則會(huì)直接使用

container_name: myapidemo   指定容器名 

restart: always   表示關(guān)機(jī)或者重啟docker時(shí),自動(dòng)重啟容器

build: .    指定 Dockerfile 所在文件夾的路徑(點(diǎn) 表示當(dāng)前目錄)。Compose 將會(huì)利用它自動(dòng)構(gòu)建這個(gè)鏡像,然后使用這個(gè)鏡像啟動(dòng)服務(wù)容器

ports:  - "9020:5000"     端口

volumes: -  /root/apilogs/logs:/app/logs   掛載一個(gè)目錄或者一個(gè)已存在的數(shù)據(jù)卷容器,(例如:將/root/apilogs/logs目錄 映射到 容器內(nèi)的 /app/logs目錄)

networks: - test_network    連接到自定義網(wǎng)橋 test_network 

特別提醒:因?yàn)榍斑呎鹿?jié)我已經(jīng)提前創(chuàng)建好 test_network 網(wǎng)橋了,所以在這里直接使用,下邊這段話表示使用已存在的網(wǎng)橋

networks:
     test_network:
       external: true

environment:    為容器設(shè)置環(huán)境變量,等同于 docker run -e MYSQL_ROOT_PASSWORD=Aa123456

(注意前邊沒(méi)有橫杠 -)

environment:
   MYSQL_ROOT_PASSWORD: Aa123456   
   MYSQL_DATABASE: MyTest
   TZ: Asia/Shanghai

command: redis-server --requirepass 123456        指定一個(gè)容器啟動(dòng)后執(zhí)行的命令,例如:這里給 redis 設(shè)置密碼

其他還有很多,不依依舉栗了。

參考文檔:

https://blog.csdn.net/zhiaini06/article/details/45287663

https://blog.csdn.net/qq_35720307/article/details/87256684

第三步:一鍵部署容器

使用以下命令創(chuàng)建并運(yùn)行容器, -d 表示后臺(tái)運(yùn)行

docker-compose up -d

如果鏡像都已經(jīng)存在,則會(huì)直接創(chuàng)建容器并運(yùn)行

如果鏡像不存在,則會(huì)嘗試?yán)』蚋鶕?jù) build指定的路徑尋找 Dockerfile文件自動(dòng)創(chuàng)建

從提示可以看出,如果鏡像不存在則自動(dòng)創(chuàng)建,否則需要調(diào)用docker-compose build 或 docker-compose up --build

Successfully tagged 1312958948/myapidemo:1.1WARNING: Image for service myapidemo was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.

而提示 xxxx is up-to-date,則表示 Docker Compose 認(rèn)為這些容器已經(jīng)啟動(dòng)了,沒(méi)必要再次啟動(dòng)

nginxapi is up-to-date
mysql is up-to-date
redistest is up-to-date

注意:在生產(chǎn)環(huán)境下,禁止使用該命令:docker-compose down xxx

擴(kuò)展:如果要更新迭代應(yīng)用版本,只需要按照下列步驟執(zhí)行即可

1,將最新版本的應(yīng)用上傳更新到服務(wù)器,使用cd命令切到應(yīng)用根目錄

2,停止容器  docker-compose stop 容器名

3,自動(dòng)更新鏡像并啟動(dòng)容器  docker-compose up -d --build

4,沒(méi)了,就3步

到此結(jié)束!

參考文檔:https://www.bilibili.com/video/BV1ib411w7L7?p=13

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多