云原生时代必须具备的核心技能之Docker高级篇(DockerCompose-容器编排)

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)

在同级目录下创建requirements.txt文件

flask

redis

然后创建对应的Dockerfile文件

syntax=docker/dockerfile:1

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”]

然后创建核心的 yml文件docker-compose.yml

version: “3.9”

services:

web:

build: .

ports:

  • “5000:5000”

redis:

image: “redis:alpine”

最终通过docker-compose up命令来启动容器

docker-compose up

在这里插入图片描述

在这里插入图片描述

启动时间比较久,耐心等待即可

测试访问:

在这里插入图片描述

如果要退出服务 Ctrl+c 或者 docker-compose down

4 Compose配置规则

=================================================================================

docker-compse.yml核心

官网地址:https://docs.docker.com/compose/compose-file/compose-file-v3/

version: ‘’ # 版本

servers: # 服务

服务1: web

服务的配置

build

network

images

服务2: redis

服务3:

服务4:

其他配置 网络,全局的规则 数据卷

volumes:

configs:

networks:

5 Compose一键部署实战

===================================================================================

5.1 一键部署WP博客


1> 创建my_wordpress目录

mkdir my_wordpress

2>创建yml文件docker-compose.yml

version: “3.9”

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

volumes:

  • wordpress_data:/var/www/html

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: {}

wordpress_data: {}

3>通过up命令启动

docker-compose up -d

在这里插入图片描述

在这里插入图片描述

5.2 部署一个SpringBoot项目


我们自己通过Java项目实现访问计数的功能

FROM java:8

COPY my-counter-views-0.0.1-SNAPSHOT.jar app.jar

EXPOSE 8080

CMD [“java”,“-jar”,“app.jar”]

yml

version: ‘3.9’

services:

myapp:

build: .

image: myapp

depends_on:

  • redis

ports:

  • “8080:8080”

redis:

image: “library/redis:alpine”

6 Compose常见操作

=================================================================================

(1)查看版本

​ docker-compose version

(2)根据yml创建service

​ docker-compose up

​ 指定yaml:docker-compose up -f xxx.yaml

​ 后台运行:docker-compose up -d

(3)查看启动成功的service

​ docker-compose ps

​ 也可以使用docker ps

(4)查看images

​ docker-compose images

(5)停止/启动service

​ docker-compose stop/start

(6)删除service[同时会删除掉network和volume]

最后

终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化

image

n

(2)根据yml创建service

​ docker-compose up

​ 指定yaml:docker-compose up -f xxx.yaml

​ 后台运行:docker-compose up -d

(3)查看启动成功的service

​ docker-compose ps

​ 也可以使用docker ps

(4)查看images

​ docker-compose images

(5)停止/启动service

​ docker-compose stop/start

(6)删除service[同时会删除掉network和volume]

最后

终极手撕架构师的学习笔记:分布式+微服务+开源框架+性能优化

[外链图片转存中…(img-Lvzq577B-1721169707738)]

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值