日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

docker compose 在单机环境下一键打包运行

發布時間:2025/3/21 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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
下面來說說簡單的步驟

  • Define your app’s environment with a Dockerfile so it can be reproduced anywhere.
  • Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.
  • Run docker compose up and the Docker compose command starts and runs your entire app. You can alternatively run docker-compose up using the docker-compose binary.
    簡單來說就是我們要寫一個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

  • 為項目創建目錄
  • mkdir composetest cd composetest


    2. 在我們的項目目錄里面創建一個app.py, 然后把下面的內容粘貼到app.py中, 看不懂python代碼沒有關系

    vim app.py import timeimport redis from flask import Flaskapp = Flask(__name__) cache = redis.Redis(host='redis', port=6379)def get_hit_count():retries = 5while True:try:return cache.incr('hits')except redis.exceptions.ConnectionError as exc:if retries == 0:raise excretries -= 1time.sleep(0.5)@app.route('/') def hello():count = get_hit_count()return 'Hello World! I have been seen {} times.\n'.format(count)
  • 然后再創建一個依賴文件
  • vim requirements.txt # 并且寫上 flask redis

    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 在单机环境下一键打包运行的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。