使用docker compose部署多個(gè)docker應(yīng)用

一般的項(xiàng)目都不只用到一個(gè)應(yīng)用,當(dāng)項(xiàng)目中有多個(gè)應(yīng)用需要被部署,并且之間還存在關(guān)系時(shí),一個(gè)個(gè)去部署非常麻煩,所以需要使用docker compose來(lái)進(jìn)行統(tǒng)一編排部署。

本文包含:

  • Linux下載安裝docker compose
  • 編寫(xiě)docker-compose.yml文件
  • docker-compose常用命令

Linux下載安裝docker compose

下載docker-compose文件

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

添加可執(zhí)行權(quán)限

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

檢查是否成功安裝

docker-compose --version

編寫(xiě)docker-compose.yml文件

編寫(xiě)docker-compose文件不難,可以簡(jiǎn)單看做是寫(xiě)一個(gè)python格式的配置文件。本篇文章不寫(xiě)大而全的內(nèi)容,更多的參數(shù)可以查看https://www.cnblogs.com/wutao666/p/11332186.html

version: "3.0"
services: 
    # 服務(wù)名稱(chēng)
    nginx:
        #鏡像名稱(chēng)
        image: nginx
        #啟動(dòng)后的容器名稱(chēng)
        container_name: nginx
        #映射宿主機(jī)和容器端口
        ports: 
            #80
            - 80:80
            #ssl默認(rèn)端口
            - 443:443
            #test1端口
            - 8088:8088
            #test2端口
            - 8089:8089
        #設(shè)置數(shù)據(jù)卷用于配置
        volumes: 
            - nginx-vol:/etc/nginx
        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - nginx
        #鏈接test1,test2應(yīng)用,可以直接在nginx.conf使用作為地址
        links: 
            - test1:test1
            - test2:test2
        #設(shè)置重新啟動(dòng)為always
        restart: always
    redis:
        image: redis
        container_name: redis
        ports: 
            - 6379:6379
        #命令配置redis密碼
        command: redis-server --requirepass yourpassword

        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - redis
        restart: always
    mysql:
        container_name: mysql
        image: mysql
        ports: 
            - 3306:3306
        environment: 
            MYSQL_ROOT_PASSWORD: 123456
        volumes: 
            - mysql-data-vol:/var/lib/mysql
            - mysql-conf-vol:/etc/mysql/conf.d
        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - mysql
        # links: 
        #     - test1
        restart: always
    test1:
        image: alexwillbegood/test1
        container_name: test1
        links: 
            - mysql:mysql
            - redis:redis
        volumes: 
            - test1-vol:/usr/share/nginx/html
        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - test1
        restart: always
    test2:
        image: alexwillbegood/test2
        container_name: test2
        links: 
            - mysql:mysql
            - redis:redis
        volumes: 
            - test2-vol:/usr/share/nginx/html
        # networks: 
        #     smartvideo-bridge:
        #         aliases: 
        #             - test2
        restart: always
#數(shù)據(jù)卷
volumes: 
    nginx-vol:
    mysql-data-vol:
    mysql-config-vol:
    test1-vol:
    test2-vol:
# networks: 
#     smartvideo-bridge:

docker-compose常用命令

docker-compose pull #拉取文件中涉及的所有鏡像,通常情況下,會(huì)使用 -d 參數(shù)令應(yīng)用在后臺(tái)啟動(dòng)
docker-compose up #用于部署一個(gè) Compose 應(yīng)用
docker-compose stop #停止 Compose 應(yīng)用相關(guān)的所有容器,但不會(huì)刪除它們
docker-compose down #停止并刪除運(yùn)行中的 Compose 應(yīng)用
docker-compose rm #用于刪除已停止的 Compose 應(yīng)用。它會(huì)刪除容器和網(wǎng)絡(luò),但是不會(huì)刪除卷和鏡像。
docker-compose restart #重啟已停止的 Compose 應(yīng)用
docker-compose ps #用于列出 Compose 應(yīng)用中的各個(gè)容器。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容