赞
踩
【狂神说Java】Docker进阶篇超详细版教程通俗易懂_哔哩哔哩_bilibili
官网:https://www.docker.com/
文档地址: https://docs.docker.com/ (Docker 官网文档超级详细)
仓库地址:https://hub.docker.com/
容器单独没有什么意义,有意义的是容器编排
Docker Compose 作用
Docker
DockerFile build run手动操作,单个容器!
微服务。100个微服务!依赖关系。
Docker Compose来轻松高效的管理容器i。
作用:批量容器编排
Docker Compose 概念
Compose是一个用于定义和运行多容器Docker应用程序的工具。
使用Compose,您可以使用yaml文件配置应用程序的服务。然后,使用一个命令,从配置中创建并启动所有服务
使用Compose基本上是一个三步过程:
Dockerfile
docker-compose.yml
docker-compose.yml (yaml配置文件)示列:
version: "3.9" # optional since v1.27.0 services: web: build: . ports: - "5000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: { }
理解
Compose是Docker官方的开源项目。需要安装!
Dockerfile让程序在任何地方运行。web服务。redis、mysqk nginx …多个容器。run
docker-compose up 100 个服务。
Compose :重要的概念。
Install Docker Compose | Docker Documentation
官方下载地址慢,不推荐官方的下载地址,使用国内的镜像
1、运行以下命令下载 Docker Compose 的当前稳定版本:
curl -L https://dn-dao-github-mirror.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@192 compose]# curl -L https://dn-dao-github-mirror.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16.7M 100 16.7M 0 0 2672k 0 0:00:06 0:00:06 --:--:-- 3033k
2、将可执行权限应用于二进制文件:
chmod +x /usr/local/bin/docker-compose
3、安装成功
[root@192 bin]# docker-compose version
docker-compose version 1.25.5, build 8a1c60f6
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
目标
在此页面上,您将构建一个在 Docker Compose 上运行的简单 Python Web 应用程序。该应用程序使用 Flask 框架,并在 Redis 中维护一个命中计数器。虽然该示例使用 Python,但即使您不熟悉此处演示的概念,也应该可以理解它。
先决条件
确保你已经安装了 Docker 引擎和 Docker Compose。您不需要安装Python或Redis,因为两者都是由Docker映像提供的。
定义应用程序依赖项。
1、为项目创建目录:
$ mkdir composetest
$ cd composetest
项目目录:/home/composetest
[root@192 composetest]# pwd
/home/composetest
2、创建一个在项目目录中调用的文件,并将其粘贴到:app.py
(pythonw文件)
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)
在此示例中,是应用程序网络上 redis 容器的主机名。我们使用 Redis 的默认端口(6379)。
创建在项目目录中调用的另一个文件,并将其粘贴到:`requirements.txt`
flask
redis
在此步骤中,您将编写一个构建 Docker 映像的 Docker 文件。该映像包含 Python 应用程序所需的所有依赖项,包括 Python 本身。
在项目目录中,创建一个名为以下内容并粘贴以下内容的文件: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:
/code
flask
requirements.txt
.``.
flask run
有关如何编写 Dockerfile 的更多信息,请参阅 Docker 用户指南和 Dockerfile 参考。
创建在项目目录中调用的文件并粘贴以下内容:docker-compose.yml
version: "3"
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
此文件定义了两个服务: web(网络服务) 和redis
该服务使用从 当前目录中生成的映像。然后,它将容器和主机绑定到公开的端口 。此示例服务使用 Flask Web 服务器的缺省端口。web Dockerfile 5000:5000
该服务使用从 Docker Hub 注册表中提取的公共 Redis 映像。
版本问题version
version版本不要填太高
docker-compose.yml 版本问题 - soowin - 博客园 (cnblogs.com)
项目文件汇总
[root@192 composetest]# l
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。