docker compose 在单机环境下一键打包运行
docker-compose
- 1. docker run 啟動服務
- 2. docker-compose啟動服務
- 3. docker-compose 小demo
- 3. 1 step1 : Setup
- 3.2 step2 : Create a Dockerfile
- 3. 3 step3 : Create a docker-compose 文件
- 3.4 step4 啟動
- 4. 以上內容都可以在docker Docs 官網找到
1. docker run 啟動服務
之前我學習docker啟動服務是, 都是docker run 命令一條到底, 單機運行, 如果我一個項目有多個微服務, 那么一個一個docker run 是很費時間的
比如這樣一個例子 :
我有一個項目, 他需要依賴于redis環境 以及我們自身的web環境
那么就需要寫2條命令, 前提是我們有這兩個鏡像才能運行
當然webapp的鏡像需要我們自己構建, 自己去寫Dockerfile(卷掛載已寫入其中), 通過docker build 命令來構造
- docker run -d -P --name myRedis redis:latest
- docker run -d -p 8080:80 --name mywebapp webapp
那么我們使用docker-compose的話, 是如何快速高效的解決這個問題呢?
2. docker-compose啟動服務
先來看看官網對于docker compose的描述 :
Compose 是一個用于定義和運行多容器 Docker 應用程序的工具。使用 Compose,您可以使用 YAML 文件來配置應用程序的服務。然后,使用一個命令,您可以從您的配置中創建并啟動所有服務。
簡單來說, 就是使用一個yaml配置文件, 將我們一個項目所需要的依賴全部寫入, 這樣當微服務很多時就不用我們一個一個的docker run
下面來說說簡單的步驟
簡單來說就是我們要寫一個Dockerfile 來定義我們的app所需要的環境, 然后寫一個docker-compose.yml的配置文件, 來定義構成我們的應用程序的服務, 最后就是使用docker compose up 的命令啟動即可啦
下面是一個docker-compose.yml配置文件的模樣
version: "3.9" # optional since v1.27.0 services: # services服務web:build: . # 通過Dockerfile來構建ports:- "8000:5000" # 暴露的端口號volumes:- .:/code # 將全部文件掛載到/code目錄下- logvolume01:/var/log # links:- redis # 依賴的鏡像redisredis:image: redis volumes:logvolume01: {}3. docker-compose 小demo
在此頁面上,您將構建一個在 Docker Compose 上運行的簡單 Python Web 應用程序。該應用程序使用 Flask 框架并在 Redis 中維護一個命中計數器。雖然示例使用 Python,但即使您不熟悉此處演示的概念,也應該可以理解。
3. 1 step1 : Setup
2. 在我們的項目目錄里面創建一個app.py, 然后把下面的內容粘貼到app.py中, 看不懂python代碼沒有關系
3.2 step2 : Create a Dockerfile
在此步驟中,您將編寫一個構建 Docker 映像的 Dockerfile。該映像包含 Python 應用程序所需的所有依賴項,包括 Python 本身。
在您的項目目錄中,創建一個名為Dockerfile并粘貼以下內容的文件:
FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt EXPOSE 5000 COPY . . CMD ["flask", "run"]這個Dockerfile告訴了docker下面的操作 :
- 從 Python 3.7 映像開始構建映像。
- 將工作目錄設置為/code
- 設置flask的環境變量
- 安裝我們所需要的一些依賴比如 gcc, musl-dev
- 將我們容器外部寫的requirements.txt文件搞到容器內部, 然后pip運行安裝里面的依賴
- 暴露5000端口
- copy當前目錄到容器的工作目錄下
- 運行命令 flask run
如果想要了解更多的dockerfile命令請查看這個官網鏈接
3. 3 step3 : Create a docker-compose 文件
在您的項目目錄中創建一個名為的文件docker-compose.yml并粘貼以下內容:
version: "3.9" services:web:build: .ports:- "8000:5000"redis:image: "redis:alpine"這個yaml文件定義了兩個服務一個是我們的web通過dockerfile來構建, 一個是redis
3.4 step4 啟動
最后我們在當前目前運行命令即可
docker-compose up這樣就算運行成功了, 我們訪問一下這個地址
nice, 我們就成功的發布一個項目啦, 而且是很快速的發布
4. 以上內容都可以在docker Docs 官網找到
傳送門
總結
以上是生活随笔為你收集整理的docker compose 在单机环境下一键打包运行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker commit 发布自己的镜
- 下一篇: Redis对象类型与编码