Docker-compose容器編排無介紹快使用(十一)

問題背景

上篇介紹了Docker拉取zookeeper,本章介紹一下docker的compose
注意事項(xiàng):

  • 因?yàn)槲覍懙氖且粋€(gè)系列,在之前的文章介紹過的一般不會(huì)重復(fù)介紹,可以根據(jù)以下鏈接查看之前的知識(shí)點(diǎn)
  • 默認(rèn)已安裝Centos7
  • 默認(rèn)已安裝JDK
  • 默認(rèn)開啟root權(quán)限
  • 默認(rèn)已安裝mysql客戶端,如Navicat或Sqlyog
  • 一個(gè)鏡像可以啟動(dòng)多個(gè)容器,第一次啟動(dòng)容器會(huì)自動(dòng)保存,下次啟動(dòng)容器可以使用 docker ps -a 查看所有容器ID和名字,然后使用 docker start [容器ID或名字] 進(jìn)行啟動(dòng)

Docker無介紹快使用,安裝部署hello測(cè)試(一)

Docker無介紹快使用,docker指令使用(二)

Docker無介紹快使用,docker數(shù)據(jù)卷Volumes掛載的使用(三)

Docker無介紹快使用,docker拉取mysql5.7及使用(四)

Docker無介紹快使用,docker拉取tomcat及使用(五)

Docker無介紹快使用,docker拉取Nginx(六)

Docker無介紹快使用,docker拉取redis(七)

Dockerfile的簡(jiǎn)介及使用(八)

Docker無介紹快使用,docker拉取rocketmq(九)

Docker-compose安裝

1 多個(gè)docker容器使用Docker Compose,通過一個(gè)配置文件來管理多個(gè)Docker容器,所有的容器通過services定義,使用docker-compose腳本來啟動(dòng),停止和重啟
2 在線安裝docker-compose,在linux上需要自己安裝docker-compose,windows和macos安裝docker時(shí)附帶安裝好了
github下載

sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

或者github太慢,daocloud下載

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

或者pip安裝

pip install docker-compose

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

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

4 查看版本,docker-compose -v

docker-compose --version

Docker-compose示例

1 版本號(hào)需要兼容性,目前都是使用的3

version: "3"                    #版本號(hào)必寫
services:                       #必寫
  tomcat:                       #容器名唯一
    container_name: tomcat01    #指定容器名
    #build                      #啟動(dòng)容器前根據(jù)Dockerfile構(gòu)建鏡像,再使用這個(gè)鏡像,不能與image同時(shí)使用
    image: tomcat:8.0           #使用tomcat鏡像,版本號(hào)8.0
    ports:                      #端口號(hào)映射
      - 8080:8080               #宿主機(jī)端口:容器端口
    depends_on: #依賴mysql,使用了這個(gè)指令,會(huì)優(yōu)先啟動(dòng)mysql,再啟動(dòng)tomcat
      - mysql
    networks: #指定容器使用的網(wǎng)橋,一個(gè)項(xiàng)目的容器在一個(gè)網(wǎng)橋里面
      - gaogao
    restart: always             #啟動(dòng)docker時(shí),自動(dòng)啟動(dòng)tomcat01

  tomcat01:                     #容器名唯一,與上面的名字不能相同
    container_name: tomcat02    #指定容器名,推薦使用默認(rèn)名字,不會(huì)出現(xiàn)名字沖突
    image: tomcat:8.0           #使用tomcat鏡像,版本號(hào)8.0
    ports:                      #端口號(hào)映射
      - 8081:8080               #宿主機(jī)端口:容器端口
    depends_on:                 #依賴mysql,使用了這個(gè)指令,會(huì)優(yōu)先啟動(dòng)mysql,再啟動(dòng)tomcat
      - mysql
    networks:                   #指定容器使用的網(wǎng)橋,一個(gè)項(xiàng)目的容器在一個(gè)網(wǎng)橋里面
      - gaogao


  redis:                    #容器名唯一
    image: redis:5.0.12
    ports:
      - "6379:6379"
    networks:
      - gaogao
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure

  mysql:
    image: mysql:5.6
    ports:
      - "3306:3306"
    environment:                          #類似于docker run -e MYSQL_ROOT_PASSWOAR=root
      - "MYSQL_ROOT_PASSWORD=123456"      #mysql的密碼
    volumes:                              #容器目錄映射,docker-compose路徑必須存在,docker run可以自己創(chuàng)建路徑
      - "/root/mysqlData:/var/lib/mysql"  #絕對(duì)路徑,宿主機(jī)目錄:容器目錄
      #- "mysqlData:/var/lib/mysql"       #相對(duì)路徑,需要使用volumes聲明mysqlData,會(huì)自動(dòng)創(chuàng)建別名文件夾
    networks:
      - gaogao



networks:     #聲明網(wǎng)橋,自動(dòng)創(chuàng)建
  gaogao:

volumes:
  db-data:
  mysqlData:    #聲明數(shù)據(jù)卷別名,必須加上冒號(hào)

2 啟動(dòng)docker-compose,-d后臺(tái)啟動(dòng),執(zhí)行指令時(shí),需要在docker-compose.yml文件夾下

docker-compose up

使用docker-compose up,最好先進(jìn)行清除構(gòu)建的緩存

docker-compose down

總結(jié)




作為程序員第 128 篇文章,每次寫一句歌詞記錄一下,看看人生有幾首歌的時(shí)間,wahahaha ...

Lyric: 會(huì)不會(huì)有人可以明白

?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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