IDEA 中 使用Docker Compose 容器編排
(一)確保idea 中連接到docker
(二)打包鏡像
我這裏測試的是前後分離項目 如果是微服務中呢,由於前文中在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
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
未使用時 查看服務器 正在運行的容器列表
idea 中操作
運行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 所在父項目名+ 自定義服務名+數字
訪問測試
docker compose 的簡單使用就結束了,後續不斷補充,其知識點是非常多的