IDEA 中 使用Docker Compose 容器編排

IDEA 中 使用Docker Compose 容器編排

(一)確保idea 中連接到docker

image-20200626182947008

(二)打包鏡像

我這裏測試的是前後分離項目 如果是微服務中呢,由於前文中在pom.xml 中綁定了idea docker 打包插件 在其 父工程中使用 打包命令 即可將其子模塊 打成一個個鏡像

(三)Compos編排文件編寫

docker compose 使用鏡像編排
version: '3'  #compose 文件版本(1.2.x+  用3即可)
services:
  #指定服務名  建議還是與項目名一致  雖然其並沒有什麼實際性聯繫
  lei-server:
    #我這裏是採用 鏡像編排 當然也可以使用 dockerfile
    image: registry.cn-chengdu.aliyuncs.com/leileideve/cattle-web:latest
    #從起方式
    restart: always
    #端口映射
    ports:
      - 6543:6543
    #數據卷掛載
    volumes:
      - /docker/logs/server:/data/logs/
  # 指定編排服務名
  lei-web:
  	#image: 後爲 需要編排的鏡像 默認從本地服務器尋找 ,未找到則從dokcerhub中尋找
    image: app-fontend
    restart: always
    ports:
    - 8888:8888
    volumes:
    - /docker/logs/web:/logs

image-20200626183632910

docker compose 使用dokcerfile 編排
version: '3'
services:
 # 後端springboot容器
  server:                                 
    container_name: lei-server-haha    # 容器名爲'xiao-xiao-su-api'
    restart: always                     # 重啓策略: 容器退出時總是重啓容器
    build:
      context: ./                       # 指定設定上下文根目錄,然後以該目錄爲準尋找Dockerfile
      dockerfile: ./docker/server/Dockerfile  #DockerFile 真正所在位置
    working_dir: /app                   # 設置工作目錄爲容器內的app文件夾
    environment:
      TZ: Asia/Shanghai
    volumes:                            # 掛載文件
      - ./logs/:/app/log                # 映射容器產生的日誌到主機的logs文件夾
    ports:                              # 映射端口
      - 7777:6543
# 前端項目
  web:                                  
    container_name: lei-web-haha   # 容器名爲'lei-web-haha'
    restart: always                     # 重啓策略: 容器退出時總是重啓容器
    build:
      context: ./                       # 指定設定上下文根目錄,然後以該目錄爲準尋找Dockerfile
      dockerfile: ./docker/web/Dockerfile  #DockerFile 真正所在位置
    environment:
      TZ: Asia/Shanghai
    ports:
      - 8899:8888                      # 映射端口

使用dockerfile 和鏡像編排的區別

​ dockerfile 每次編排需要創建一個新鏡像 然後啓動容器實例

​ 使用images則是在原本鏡像中 新啓動一個容器實例

docker-compose.yml 一般都是放在項目最外層

(四)idea 中操作docker compose

未使用時 查看服務器 正在運行的容器列表

image-20200626183317890

idea 中操作

image-20200626184039920

運行services 其實質是執行了docker compose 命令 docker-compose up -d (當compose文件 爲標準的 docker-compose.yml 時) 如不標準 則實質時 用-f 參數指定文件名 與 docker build 命令類似 (docker-compose -f dockerdemo.yml up -d)

docker compose 常用命令 以 tomcat 爲例子

docker-compose up -d 容器                     構建建啓動容器
exmaple: docker-compose up -d tomcat         構建建啓動tomcat容器
docker-compose exec tomcat bash            登錄到tomcat容器中

docker-compose down                              刪除所有容器,鏡像

docker-compose ps                                   顯示所有容器

docker-compose restart 容器ID                   重新啓動容器


docker-compose build tomcat                     構建鏡像 。        

docker-compose build --no-cache tomcat   不帶緩存的構建。

docker-compose logs  tomcat                     查看tomcat的日誌 

docker-compose logs -f tomcat                   查看tomcat的實時日誌

查看Linux虛擬機 容器信息 服務名 是默認的 docker compose 所在父項目名+ 自定義服務名+數字

image-20200626184120113

訪問測試

image-20200626184316570

docker compose 的簡單使用就結束了,後續不斷補充,其知識點是非常多的 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章