1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Docker Compose實(shí)踐

        共 3230字,需瀏覽 7分鐘

         ·

        2021-10-01 15:25

        Docker Compose可以大大方便我們對(duì)多容器服務(wù)的管理,實(shí)現(xiàn)了一條命令啟動(dòng)多個(gè)容器服務(wù)

        abstract.png

        基本實(shí)踐

        如果期望通過docker run命令啟動(dòng)兩個(gè)容器,則分別需要如下兩條命令。如下所示

        # 創(chuàng)建mysql容器
        docker run -d \
          --name MySQL-Service \
          -p 7000:3306 \
          -v mysqlData:/var/lib/mysql \
          -e MYSQL_ROOT_PASSWORD=123456 \
          -e MYSQL_DATABASE=db1 \  
          mysql:5.7

        # 創(chuàng)建redis容器
        docker run -d \
          --name Redis-Service \
          -p 7001:6379 \
          -v /Users/zgh/Docker/Redis/Redis-Service/Data:/var/lib/data \
          redis:6.2.3-alpine3.13 \
          redis-server --requirepass 123456

        而通過compose我們就可以統(tǒng)一管理多個(gè)容器。具體地,通過docker-compose.yml文件配置所需的多個(gè)容器服務(wù)。然后利用docker-compose命令從YAML配置文件創(chuàng)建并啟動(dòng)所有服務(wù)。下面即是一個(gè)配置mysql、redis的docker-compose.yml文件

        # Compose 版本
        version: '3.8'

        # 定義Docker服務(wù)
        services:

          # Docker服務(wù) 1    
          MySQL-Service:
            image: mysql:5.7
            container_name: MySQL-Service
            ports:
              - "7000:3306"
            volumes:
              - mysqlData:/var/lib/mysql
            environment: 
              MYSQL_ROOT_PASSWORD: 123456
              MYSQL_DATABASE: db1
            networks:
              # 使用名為dev_net并設(shè)置容器IP
              dev_net:
                ipv4_address: 120.120.120.13

          # Docker服務(wù) 2
          Redis-Service:
            image: redis:6.2.3-alpine3.13
            container_name: Redis-Service
            command: redis-server --requirepass 123456
            ports:
              - "7001:6379"
            volumes:
              - /Users/zgh/Docker/Redis/Redis-Service/Data:/var/lib/data
            networks:
              # 使用名為dev_net并設(shè)置容器IP
              dev_net:
                ipv4_address: 120.120.120.14

        # 定義數(shù)據(jù)卷
        volumes:
           mysqlData:

        # 定義網(wǎng)絡(luò)
        networks:
          # 定義一個(gè)名為dev_net的網(wǎng)絡(luò)
          dev_net:
            ipam:
              config:
                # 設(shè)置網(wǎng)段
                - subnet: 120.120.120.0/24

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

        # 創(chuàng)建啟動(dòng)容器, -d選項(xiàng)表示以后臺(tái)方式運(yùn)行容器
        docker-compose up -d

        效果如下所示

        figure 1.jpg

        從下圖可以看到,我們通過docker-compose.yml文件所創(chuàng)建的兩個(gè)容器已經(jīng)啟動(dòng)成功

        figure 2.jpg

        其中在docker-compose.yml這里我們還自定義了一個(gè)名為dev_net的網(wǎng)絡(luò),然后各容器服務(wù)使用該網(wǎng)絡(luò)并分配一個(gè)固定IP。以便于進(jìn)行容器間的內(nèi)部通信

        Note

        • docker compose的大多數(shù)命令需在docker-compose.yml文件所在目錄下執(zhí)行

        figure 3.jpg

        參考文獻(xiàn)

        1. 第一本Docker書·修訂版 James Turnbull著
        2. 深入淺出Docker [英]Nigel Poulton著
        瀏覽 65
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            97热热| 大乳喷奶水www | 免费一级特黄毛片 视频 | 亚洲天堂免费 | 嫩逼4P视频 | 中国妇女裸体性开放 | 亚洲综合在线无码 | 久久视频日本 | 欧美性交XXXX | 国产成人精品一区二三区熟女在线 |