【狂神說】Docker(三) - 高階進階
本文章僅個人學習筆記,內容來源b站up主:
遇見狂神說
Docker Compose
簡介
第3P Compose 安裝
https://www.bilibili.com/video/BV1kv411q7Qc?p=3
安裝
看官方文件
1、下載
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2、授權
sudo chmod +x docker-compose
3、檢視版本
docker-compose version
第4P Compose 初體驗
https://www.bilibili.com/video/BV1kv411q7Qc?p=3
體驗
官方文件:https://docs.docker.com/compose/gettingstarted/
1、建立資料夾 composetest
$ mkdir composetest
$ cd composetest
2、建立 app.py
$ vim app.py
import time
import redis
from flask import Flask
app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)
def get_hit_count():
retries = 5
while True:
try:
return cache.incr('hits')
except redis.exceptions.ConnectionError as exc:
if retries == 0:
raise exc
retries -= 1
time.sleep(0.5)
@app.route('/')
def hello():
count = get_hit_count()
return 'Hello World! I have been seen {} times.\n'.format(count)
3、建立 requirements.txt
$ vim requirements.txt
flask
redis
4、建立 Dockerfile
$ vim Dockerfile
FROM python:3.7-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
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"]
5、建立 docker-compose.yml
$ vim docker-compose.yml
version: "3.8"
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
6、啟動
$ docker-compose build
$ docker-compose up
7、停止
8、小結
第5P Compose 初體驗
https://www.bilibili.com/video/BV1kv411q7Qc?p=3
yaml 規則
docker-compose.yaml 核心!
官方文件:https://docs.docker.com/compose/compose-file/
第6P 使用Compose一鍵部署WP部落格
https://www.bilibili.com/video/BV1kv411q7Qc?p=3
開源專案 - 部落格
官方文件:https://docs.docker.com/compose/wordpress/
1、建立檔案
$ mkdir my_wordpress
$ cd my_wordpress
$ vim docker-compose.yml
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
2、啟動
# 前臺啟動
$ docker-compose up
# 後臺啟動
$ docker-compose up -d
第7P 實戰:自己編寫微服務上線
https://www.bilibili.com/video/BV1kv411q7Qc?p=3
自己編寫微服務上線
1、編寫微服務專案(帶redis)
HelloController.java
@RestController
public class HelloController {
@Autowired
StringRedisTemplate redisTemplate;
@GetMapping("/hello")
public String hello(){
Long views = redisTemplate.opsForValue().increment("views");
return "hello:"+views;
}
}
2、dockerfile構建映象
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
3、docker-compose.yaml 編排專案
version: '3.3'
services:
wengapp:
build: .
image: wengiapp
depends_on:
- redis
ports:
- "8080:8080"
redis:
image: "library/redis:alpine"
4、丟到伺服器 docker-compose up
總結:
第8P Compose 初體驗
https://www.bilibili.com/video/BV1kv411q7Qc?p=3
第9P Compose 初體驗
https://www.bilibili.com/video/BV1kv411q7Qc?p=3
第10P Compose 初體驗
https://www.bilibili.com/video/BV1kv411q7Qc?p=3
相關文章
- 高階前端進階(三)前端
- React 進階(三) 高階元件React元件
- Docker進階與實踐之三:Docker映象Docker
- 高階前端進階(七)前端
- 高階前端進階(五)前端
- Typescript 高階語法進階TypeScript
- 高階前端進階系列 - webview前端WebView
- 《docker高階篇(大廠進階):7.Docker容器監控之CAdvisor+InfluxDB+Granfana》DockerUX
- JS高階三JS
- 『高階篇』docker容器來說微服務導學(一)Docker微服務
- 【狂神說】SpringBootSpring Boot
- 面試官最愛問的Kafka,基礎+進階+高階,44問瘋狂轟炸!面試Kafka
- 高階前端的進階——CSS之flex前端CSSFlex
- 高階 Android 工程師的進階之路Android工程師
- Python 函式進階-高階函式Python函式
- Docker:四、Docker進階 Windows Docker IIS 部署DockerWindows
- Docker進階-快速擴容Docker
- 『高階篇』docker之APIGateway(17)DockerAPIGateway
- Java初級~中級~高階進階之路Java
- OpenGL ES 高階進階:紋理陣列陣列
- React 進階之路(三)React
- Cats(三):高階型別型別
- 【模組三】Python高階Python
- Docker_06 容器-進階操作Docker
- 說說 Vue.js 元件的高階特性Vue.js元件
- 說說 Spring AOP 中 @Aspect 的高階用法Spring
- CSS使用的一些小技巧/高階進階CSS
- Python進階:切片的誤區與高階用法Python
- Docker 運維高階應用管理Docker運維
- 大咖說·圖書分享|了不起的JavaScript工程師:從前端到全端高階進階JavaScript工程師前端
- Kotlin進階(二)中綴、內聯、高階函式Kotlin函式
- DllImport進階:引數配置與高階主題探究Import
- shell程式設計,實戰高階進階教學程式設計
- 說說 vue-router 元件的高階應用Vue元件
- 14 卷積神經網路(進階)卷積神經網路
- springCloud+docker從入門到高階SpringGCCloudDocker
- 『高階篇』docker之瞭解kubernetes(31)Docker
- 最新拓薪Java高階階段及ERP實戰專案(階段三)Java