docker-compose簡單使用方法詳解
Compose介紹
Docker Compose是一個用來定義和運行復雜應(yīng)用的Docker工具。一個使用Docker容器的應(yīng)用,通常由多個容器組成。使用Docker Compose不再需要使用shell腳本來啟動容器。
Compose 通過一個配置文件來管理多個Docker容器,在配置文件中,所有的容器通過services來定義,然后使用docker-compose腳本來啟動,停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器,非常適合組合使用多個容器進行開發(fā)的場景。
一、前置條件
1.安裝 docker-compose ,可以參考這篇文章 http://www.dbjr.com.cn/article/203802.htm
二、使用方法
1.目錄結(jié)構(gòu)
|--mysite # 根目錄 |----docker-compose.yml # 用于部署上線 |----Dockerfile # 用于打包鏡像 |----server.py # 測試服務(wù)
2.創(chuàng)建測試服務(wù)【server.py】
from fastapi import FastAPI # 創(chuàng)建服務(wù)對象 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服務(wù),訪問 ip:2333 會返回 “hello docker-compose”
3.創(chuàng)建 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 :基礎(chǔ)鏡像
- MAINTAINER :指明作者
- WORKDIR /mysite :指明工作目錄為容器中的 /mysite 目錄
- ADD . /mysite :當前路徑所有文件復制到容器的 /mysite 目錄下
- EXPOSE 2333 :指明容器中暴露的端口為 2333【此處可省,后面在docker-compose.yml配置了】
- RUN :run的三行分別是更新pip、換源、安裝 fastapi 依賴包
- CMD :服務(wù)啟動命令
4.創(chuàng)建 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 :指定部署哪些服務(wù)
- mysite :如果不指定下面的 image 參數(shù)的話,打包后的鏡像名會以 當前文件夾名+下劃線+你配置的名稱 組合,作為你的鏡像名【比如:此處我如果沒指定下面的 image 參數(shù)的話,我的鏡像名就是 文件夾名+下劃線+配置名 == mysite_mysite】如果指定了 image 參數(shù)的話,那么這里的名字可以隨便寫,相當于站位符,沒啥用了
- 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 :后臺運行
- 首次執(zhí)行時會先打包鏡像,在從該鏡像啟動容器,后續(xù)運行則會直接從已存在的鏡像啟動
6.查看容器
1.docker ps 查看,如果找不到的話可能啟動失敗了,試試 docker ps -a 查看全部容器【包括啟動成功和失敗的所有容器】
三、測試
訪問 ip:2333
到此這篇關(guān)于docker-compose簡單使用方法的文章就介紹到這了,更多相關(guān)docker compose使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用非root用戶安裝及啟動docker的問題(rootless模式運行)
docker是使用--userns-remap容器用戶映射宿主機用戶的方式來解決問題,用戶和組的映射由兩個配置文件來控制,分別是/etc/subuid和/etc/subgid,本文給大家介紹非root用戶啟動docker的問題,感興趣的朋友一起看看吧2022-05-05Docker啟動容器報錯:Ports are not available的解決方案
這篇文章主要介紹了Docker啟動容器報錯:Ports are not available的解決方案,Docker 將容器程序的端口號映射到宿主機的端口號,是一個 NAT 過程,這個過程可能會因為與 Windows NAT 服務(wù)沖突而失效,文中有詳細的解決方案,需要的朋友可以參考下2024-03-03快速使用docker-compose部署clickhouse的教程
ClickHouse 的工作速度比傳統(tǒng)方法快 100-1000 倍。它適用于大數(shù)據(jù)、業(yè)務(wù)分析和時間序列數(shù)據(jù)。在這個小教程中,我將向您展示如何以最少的設(shè)置安裝 ClickHouse,感興趣的朋友一起看看吧2021-11-11Docker數(shù)據(jù)卷容器創(chuàng)建及使用方法解析
這篇文章主要介紹了Docker數(shù)據(jù)卷容器創(chuàng)建及使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10docker之MySQL同步數(shù)據(jù)的實現(xiàn)
本文主要介紹了docker之MySQL同步數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07docker部署springboot項目啟動時間與宿主機相差8小時的解決
項目部署到docker環(huán)境,數(shù)據(jù)庫中的時間總是少8個小時,本文就來介紹一下解決方法,具有一定的參考價值,感興趣的可以了解一下2023-09-09