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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dokcer进阶之Compose 实战官方flask、wordpress、spring-boot

發(fā)布時(shí)間:2025/5/22 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dokcer进阶之Compose 实战官方flask、wordpress、spring-boot 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 Docker Compose

官方文檔:https://docs.docker.com/compose/install/

1.1 簡介

定義、運(yùn)行多個(gè)容器

YAML file配置文件

single command 命令有哪些

作用:批量容器編排

Compose

version: '2.0' services:web:build:.ports:- "5000:5000"volumes:- .:/code- logvolume01:/var/loglinks:- redisredis:image: redis volumes:logvolume01: {}

1.2 安裝

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 國內(nèi)鏡像 curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

授權(quán)

sudo chmod +x /usr/local/bin/docker-compose

1.3 yaml規(guī)則

https://docs.docker.com/compose/compose-file/compose-file-v3/

# 3層version: ' ' # 版本 services: # 服務(wù)服務(wù)1:web# 服務(wù)配置imagesbuildnetwork...服務(wù)2:redis...服務(wù)2:redis... # 其他配置 網(wǎng)路/卷、全局規(guī)則 volumes: networks: configs:

2 官方 實(shí)戰(zhàn) flask

2.1 創(chuàng)建項(xiàng)目文件

https://docs.docker.com/compose/gettingstarted/
1、創(chuàng)建項(xiàng)目

mkdir /home/composetest cd /home/compose

2、創(chuàng)建 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)if __name__ == "__main__":app.run(host="0.0.0.0", debug=True)

3、requirements.txt

flask redis

2.2 創(chuàng)建Dockerfile

# syntax=docker/dockerfile:1 FROM python:3.8-alpine ADD . /code WORKDIR /code COPY requirements.txt requirements.txt RUN pip install -r requirements.txt CMD ["python", "app.py"]
  • 從 Python 3.7 映像開始構(gòu)建映像。
  • 將工作目錄設(shè)置為/code.
  • 設(shè)置命令使用的環(huán)境變量flask。
  • 安裝 gcc 和其他依賴項(xiàng)
  • 復(fù)制requirements.txt并安裝 Python 依賴項(xiàng)。
  • 向鏡像添加元數(shù)據(jù)以描述容器正在偵聽端口 5000
  • 將項(xiàng)目中的當(dāng)前目錄復(fù)制.到鏡像中的workdir .。
  • 將容器的默認(rèn)命令設(shè)置為flask run.

2.3 在Compose文件中定義service

vim docker-compose.yml version: "3.3" services:web:build: . # 自己構(gòu)建鏡像ports:- "5000:5000"redis:image: "redis:alpine" # 拉取鏡像

2.4 Build and run your app with Compose

構(gòu)建并運(yùn)行

docker-compose up

構(gòu)建并運(yùn)行 – 重構(gòu)

docker-compose up --build

構(gòu)建并運(yùn)行 - - 重構(gòu) - 后臺運(yùn)行

docker-compose up --build -d

停止:

docker-compose down

docker-compose
以前都是單個(gè)docker run 啟動(dòng)容器
docker-compose 通過docker-compose編寫yaml配置文件、可以通過compose 一鍵啟動(dòng)所有服務(wù),停止

3 實(shí)戰(zhàn) 博客 wordpress

https://docs.docker.com/samples/wordpress/

mkdir my_wordpress cd my_wordpress

3.1 docker-compose.yml

version: "3.3"services:db:image: mysql:5.7volumes:- db_data:/var/lib/mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresswordpress:depends_on:- dbimage: wordpress:latestvolumes:- wordpress_data:/var/www/htmlports:- "8000:80"restart: alwaysenvironment:WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressWORDPRESS_DB_NAME: wordpress volumes:db_data: {}wordpress_data: {}

啟動(dòng)

docker-compose up

4 實(shí)戰(zhàn) spring-boot

4.1 編輯代碼


勾選依賴
Web -> Spring Web
NoSQL -> Spring Data Redis

application.properties

server.port=8080 spring.redis.host=redis

HelloController.java

package com.example.springboot.demo.controller;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;@RestController public class HelloController {@RequestMapping("/hello")public String hello(){return "hello charles";} }

打包項(xiàng)目

4.2 編輯dokcer文件

Dockerfile

FROM java:8COPY *.jar /app.jarCMD ["--server.port=8080"]EXPOSE 8080ENTRYPOINT ["java","-jar","/app.jar"]

docker-compose.yml
編排項(xiàng)目

version: '3.3' services:vitcloud-spring-demo:build: .# dockerfile: Dockerfile # 指定Dokcerfileimage: spring-demo-imagesdepends_on:- redisports:- "8080:8080" # 外部地址:內(nèi)部地址redis:# image:"library/redis:alpine"image: redis

4.3 啟動(dòng)項(xiàng)目

丟到服務(wù)器

  • demo-0.0.1-SNAPSHOT.jar
  • docker-compose.yml
  • Dockerfile

啟動(dòng)

docker-compose up docker-compose up --build -d

--build:重新構(gòu)建
-d:后臺模式

學(xué)習(xí)地址
狂神說:https://www.bilibili.com/video/BV1kv411q7Qc

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Dokcer进阶之Compose 实战官方flask、wordpress、spring-boot的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本电影成人 | 黄色成人在线免费观看 | 大粗鳮巴久久久久久久久 | 在线观看你懂的视频 | 人成网站在线观看 | 国产精品xxxxx | 亚洲精品免费看 | 玩偶姐姐在线观看免费 | 在线看b| 男女超碰 | 男女啪啪免费看 | 一区二区免费看 | 一区二区三区视频在线 | 久久久久久久久久久久久av | 成人免费看片' | 国产精品福利一区二区 | 国产妻精品一区二区在线 | 成年人在线播放 | 婷婷深爱激情 | 波多在线观看 | 欧美精品韩国精品 | 97人人爽人人爽人人爽 | av免播放器在线观看 | 国产精品18p | 一起操17c| 精品国产av无码一区二区三区 | 日本v片 | 欧美v日韩 | 肮脏的交易在线观看 | 久久香蕉精品视频 | 最新av中文字幕 | xxxx.国产| 欧美狂猛xxxxx乱大交3 | 一级性生活黄色片 | 国产成人无码网站 | 91浏览器在线观看 | 神马福利视频 | 天堂在线观看中文字幕 | 日韩麻豆 | 午夜免费播放观看在线视频 | 国产99久久久国产精品成人免费 | 色91在线| 岛国精品一区二区三区 | 丁香花五月天 | 免费黄色国产视频 | 97视频在线免费观看 | 男女无遮挡做爰猛烈视频 | 美女脱裤子让男人捅 | 激情久久网 | 成人免费xxxxx在线观看 | 色久综合网 | 在线天堂资源 | 九一九色国产 | 久久精品亚洲a | 欧美黄色免费大片 | 天天综合射| 一本一道久久a久久精品蜜桃 | 精品国产视频在线 | 熟女毛毛多熟妇人妻aⅴ在线毛片 | av男人的天堂在线 | 玉女心经在线看 | 五月天激情视频在线观看 | 中出中文字幕 | 日操干 | 天堂网av中文字幕 | 神马午夜在线观看 | 国内精品视频一区 | 中文字幕 国产精品 | 国产欧美一区二区三区免费看 | 美女下部无遮挡 | 日本a级片网站 | 黄色一级片免费看 | 国产浪潮av | 黑人极品videos精品欧美裸 | 欧美性生话 | 欧美天堂网站 | 在线免费看a | 老头糟蹋新婚少妇系列小说 | n0659极腔濑亚美莉在线播放播放 | 欧美激情日韩 | 伊人久久免费 | 精品欧美一区二区在线观看 | 狠狠伊人| 91视频网址 | 天堂在线视频观看 | 国产真实乱偷精品视频 | 欧美另类精品 | 午夜激情一区二区 | 亚洲激情社区 | 国产卡一卡二在线 | 九九热视频这里只有精品 | 中字av在线 | 蜜桃在线一区二区三区 | 久草网在线视频 | 中文字幕亚洲一区 | 久久免费手机视频 | 国产视频精品一区二区三区 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 欧美午夜在线 |