栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Docker进阶

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker进阶

Docker Compose 简介

Docker
Dockerfile build run 手动操作,单个容器!
微服务。100个微服务!依赖关系。
Docker Compose 来轻松高效的管理容器。定义运行多个容器。

官方介绍
定义运行多个容器。
YAML file配置文件

三步骤

  1. Dockfile 保证我们的项目在任何地方都可以运行
  2. docker-compose.yml这个文件怎么写
  3. docker-compose up 启动项目

作用:批量容器编排

Compose是Docker官方的开源项目。需要安装

Dockerfile让程序在任何地方运行。web服务、redis、mysql、nginx…多个容器。

docker-compose up 100 个服务,一键上线

Compose:重要的概念

  • 服务services, 容器,应用(web、redis、mysql…)使用compose来编排
  • 项目porject。一组关联的容器
安装
#官方下载(太慢)
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#授权
chmod +x /usr/local/bin/docker-compose
#加速下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#授权
chmod +x /usr/local/bin/docker-compos

安装成功

体验

跟着官网做: https://docs.docker.com/compose/gettingstarted/
python应用:计数器。redis

官网步骤

  1. 例子:应用 app.py
  2. Dockerfile 应用打包为镜像
  3. docker-compose.yml文件(定义整个服务,需要的环境,web,redis)完整的上线服务
  4. 启动compose项目(docker-compose up)

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)

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

docker-compose.yml

version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

流程:

  1. 创建网络
  2. 执行docker-compose.yml
  3. 启动服务

Docker-compose yml
Creating composetest_web_1 … done
Creating composetest_redis_1 … done

  1. 文件 composetest
  2. 服务
version: "3"
services:
  web:
    build: .
    ports:
      - "5000:5000"
  redis:
    image: "redis:alpine"

自动的默认规则

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号