網站首頁 編程語言 正文
Compose介紹
Docker Compose是一個用來定義和運行復雜應用的Docker工具。一個使用Docker容器的應用,通常由多個容器組成。使用Docker Compose不再需要使用shell腳本來啟動容器。?
Compose 通過一個配置文件來管理多個Docker容器,在配置文件中,所有的容器通過services來定義,然后使用docker-compose腳本來啟動,停止和重啟應用,和應用中的服務以及所有依賴服務的容器,非常適合組合使用多個容器進行開發的場景。
一、前置條件
1.安裝 docker-compose ,可以參考這篇文章 https://www.jb51.net/article/203802.htm
二、使用方法
1.目錄結構
|--mysite # 根目錄
|----docker-compose.yml # 用于部署上線
|----Dockerfile # 用于打包鏡像
|----server.py # 測試服務
2.創建測試服務【server.py】
from fastapi import FastAPI
# 創建服務對象
app = FastAPI()
# get --------------------------------
@app.get("/")
async def hello():
return "hello docker-compose"
# ------------------------------------
if __name__ == '__main__':
import uvicorn
uvicorn.run(app="server:app", host="0.0.0.0", port=2333, reload=True)
ps:一個fastapi服務,訪問 ip:2333 會返回 “hello docker-compose”
3.創建 docker 打包文件【Dockerfile】
FROM python:3.7
MAINTAINER ps
WORKDIR /mysite
ADD . /mysite
EXPOSE 2333
RUN python -m pip install -U pip
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
RUN pip install uvicorn fastapi
CMD python server.py
ps:
- FROM :基礎鏡像
- MAINTAINER :指明作者
- WORKDIR /mysite :指明工作目錄為容器中的 /mysite 目錄
- ADD . /mysite :當前路徑所有文件復制到容器的 /mysite 目錄下
- EXPOSE 2333 :指明容器中暴露的端口為 2333【此處可省,后面在docker-compose.yml配置了】
- RUN :run的三行分別是更新pip、換源、安裝 fastapi 依賴包
- CMD :服務啟動命令
4.創建 compose 部署文件【docker-compose.yml】
version: '3.5'
services:
mysite:
image: mysite_image:0.0.1
container_name: mysite_container
build: ./
restart: always
ports:
- "2333:2333"
ps:
- version: ‘3.5’ :指定當前的 compose 版本【compose 版本可以通過 docker-compose --version 命令查看】
- services :指定部署哪些服務
- mysite :如果不指定下面的 image 參數的話,打包后的鏡像名會以 當前文件夾名+下劃線+你配置的名稱 組合,作為你的鏡像名【比如:此處我如果沒指定下面的 image 參數的話,我的鏡像名就是 文件夾名+下劃線+配置名 == mysite_mysite】如果指定了 image 參數的話,那么這里的名字可以隨便寫,相當于站位符,沒啥用了
- image: mysite_image:0.0.1 :指定鏡像名為 mysite_image 版本號為 0.0.1
- container_name: mysite-container :指定啟動后的容器名為 mysite-container
- build ./ :在當前路徑下找 Dockerfile 文件
- restart: always :開機自啟
- ports :端口映射
5.啟動容器
docker-compose up -d
ps:
- -d :后臺運行
- 首次執行時會先打包鏡像,在從該鏡像啟動容器,后續運行則會直接從已存在的鏡像啟動
6.查看容器
1.docker ps 查看,如果找不到的話可能啟動失敗了,試試 docker ps -a 查看全部容器【包括啟動成功和失敗的所有容器】
三、測試
訪問 ip:2333
原文鏈接:https://blog.csdn.net/weixin_43721000/article/details/127507005
相關推薦
- 2023-01-10 Flutter?RendererBinding作用源碼分析_IOS
- 2022-04-12 Windows11右鍵菜單恢復Windows10樣式
- 2022-07-09 使用cgroup控制cpu、內存、IO資源實踐
- 2022-10-21 GO語言實現文件上傳的示例代碼_Golang
- 2023-01-10 Flutter?CustomPaint繪制widget使用示例_IOS
- 2023-01-11 Android開發中父組件調用子組件方法demo_Android
- 2022-05-12 Kotlin 擴展函數 之 可空
- 2022-12-16 Docker教程之使用dockerfile生成鏡像_docker
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支