热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dockercomposedockercomposev1.0.0

文件名称版本号作者qq组件版本docker compose docker-composev1.0.0学生宫布8416837Docker 20.10.2docker-compose version 1.

文件名称版本号作者qq组件版本
docker compose docker-composev1.0.0学生宫布8416837Docker 20.10.2
docker-compose version 1.24.1
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j 20 Nov 2018
简介
  • Docker Compose 是一个工具,用于在使用Compose 文件格式定义的 Docker 上运行多容器应用程序。Compose 文件用于定义构成应用程序的一个或多个容器的配置方式。拥有 Compose 文件后,您可以使用单个命令创建和启动应用程序:docker-compose up.

  • Compose 文件可用于在本地部署应用程序,或使用 Docker CLI部署到Amazon ECS或 Microsoft ACI上的云 。

安装

脚本

# 下载
sudo curl -L "https://hub.fastgit.org/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

  • 下载过程:
    在这里插入图片描述

# 授权 # 创建快捷方式
sudo chmod +x /usr/local/bin/docker-compose;\
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose;\
docker-compose --version;
# 检查是否成功
docker-compose --version
使用步骤

一、使用 Dockerfile 定义应用程序的环境。

二、使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

三、最后,执行 docker-compose up 命令来启动并运行整个应用程序。

简单测试

脚本

# mkdir
sudo mkdir -p /home/project/docker/composetes;\
cd /home/project/docker/composetes;
# 在目录创建应用,如简单的python应用

  • 注意:文件格式使用dos2unix来转
  • 新建python应用
    python应用
  • 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)

# 创建依赖文件
sudo vim requirements.txt
# 内容是flask redis
# 创建Dockerfile,内容如下:

  • 注意python3版本改成自己的

FROM python:3.6-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
COPY . .
CMD ["flask", "run"]

  • Dockerfile释义

Dockerfile 内容解释:
FROM python:3.7-alpine: 从 Python 3.7 映像开始构建镜像。
WORKDIR /code: 将工作目录设置为 /code。
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
设置 flask 命令使用的环境变量。
RUN apk add --no-cache gcc musl-dev linux-headers: 安装 gcc,以便诸如 MarkupSafe 和 SQLAlchemy 之类的 Python 包可以编译加速。
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
复制 requirements.txt 并安装 Python 依赖项。
COPY . .: 将 . 项目中的当前目录复制到 . 镜像中的工作目录。
CMD ["flask", "run"]: 容器提供默认的执行命令为:flask run。

  • create docker-compose.yml

# yaml 配置
version: '3'
services:
web:
build: .
ports:
- "5001:5000"
redis:
image: "redis:alpine"

该 Compose 文件定义了两个服务:web 和 redis。

web:该 web 服务使用从 Dockerfile 当前目录中构建的镜像。然后,它将容器和主机绑定到暴露的端口 5000。此示例服务使用 Flask Web 服务器的默认端口 5000 。
redis:该 redis 服务使用 Docker Hub 的公共 Redis 映像。

执行

docker-compose up
docker-compose up -d # 后台

  • 观察日志,开始执行了
    在这里插入图片描述
    ip:5001 测试,返回Hello World,成功
卸载

To uninstall Docker Compose if you installed using curl:
sudo rm /usr/local/bin/docker-compose
To uninstall Docker Compose if you installed using pip:
pip uninstall docker-compose

信息

URL

官方文档

https://docs.docker.com/compose/install/

菜鸟教程

https://www.runoob.com/docker/docker-compose.html


版权声明:本文为cc007cc009原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/cc007cc009/article/details/119143527
推荐阅读
  • 【云计算】Dockerfile、镜像、容器快速入门 ... [详细]
  • 处理docker容器时间和宿主机时间不一致问题的方法
    本文介绍了处理docker容器时间和宿主机时间不一致问题的方法,包括复制主机的localtime到容器、处理报错情况以及重启容器的步骤。通过这些方法,可以解决docker容器时间和宿主机时间不一致的问题。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 使用Docker安装和运行Nexus
    本文介绍了使用Docker安装和运行Nexus的方法,包括docker-compose.yml配置和启动时可能出现的权限问题解决方法。同时提供了登录控制台验证安装的地址和登录信息。 ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • 随着我司的应用都开始容器化,相应的ETL流程也需要迁移到容器中。常规的SQL和shell脚本迁移之后执行基本没有问题,主要的问题在于数据接入使用kettle的场景下,kettle启 ... [详细]
  • docker容器的数据管理一:数据卷实现数据的永久化,完全独立于容 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 开发笔记:Docker 上安装启动 MySQL
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker上安装启动MySQL相关的知识,希望对你有一定的参考价值。 ... [详细]
  • php docker隔离,docker可以隔离资源吗
    docker可以隔离资源。docker容器的本质是宿主机上的一个进程。Docker通过namespace实现了资源隔离,通过cgroups实现了资源限制, ... [详细]
  • Docker安装Rabbitmq(配合宝塔)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker安装Rabbitmq(配合宝塔)相关的知识,希望对你有一定的参考价值。一、事前准备 ... [详细]
  • Docker下Prometheus和Grafana三部曲之一:极速体验
    开源监控工具Prometheus目前广为使用,配合Grafana即可直观展现监控数据,但对于初学者来说搭建这样一个系统要花费些时间,或者有 ... [详细]
author-avatar
无视一个水阿哥_470
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有