Docker[6]-.DockerCompose

这篇具有很好参考价值的文章主要介绍了Docker[6]-.DockerCompose。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 DockerCompose介绍

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

一键启动所有的服务

DockerCompose的使用步骤

  • 创建对应的DockerFile文件

  • 创建yml文件,在yml文件中编排我们的服务

  • 通过docker-compose up命令 一键运行我们的容器

2 Compose安装

官网地址:Overview | Docker Documentation

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

速度比较慢的话使用下面的地址:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
​

修改文件夹权限

chmod +x /usr/local/bin/docker-compose

建立软连接

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

校验是否安装成功

docker-compose --version

3 Compose初体验

通过官方案例来演示:Try Docker Compose | Docker Documentation

创建对应的目录

 mkdir composetest
 cd composetest

创建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)

在同级目录下创建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

Docker[6]-.DockerCompose 

 Docker[6]-.DockerCompose

 

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

测试访问:

Docker[6]-.DockerCompose

 

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

4 Compose配置规则

docker-compse.yml核心

官网地址:Compose file version 3 reference | Docker Documentation

version: '' # 版本
servers:  # 服务
  服务1: web
     # 服务的配置
     build
     network
     images
  服务2: redis
  服务3:
  服务4:
  ...
# 其他配置 网络,全局的规则 数据卷
volumes:
configs:
networks:

5 Compose一键部署实战

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

Docker[6]-.DockerCompose

 

Docker[6]-.DockerCompose

 

 6.部署一个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"

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

docker-compose down

(7)进入到某个service

docker-compose exec redis sh

8 scale扩缩容

docker-compose up --scale web=5 -d

Docker[6]-.DockerCompose

 

小结:docker-compose

工程-->服务-->容器文章来源地址https://www.toymoban.com/news/detail-415840.html

version:
services:
  服务1:
  服务2:
  服务3:

到了这里,关于Docker[6]-.DockerCompose的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker | 使用DockerCompose

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容:Docker | 使用DockerCompose 📚个人知识库: Leo知识库,欢迎大家访问 大家好,我是Leo哥🫣🫣🫣,在

    2024年02月04日
    浏览(41)
  • Docker[6]-.DockerCompose

    Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 一键启动所有的服务 DockerCompose的使用步骤 创建对应的DockerFile文件 创建yml文件,在

    2023年04月17日
    浏览(32)
  • Docker与DockerCompose最佳实践

    在本文中,我们将探讨Docker和Docker Compose的最佳实践,涵盖了从基础概念到实际应用场景的全面讨论。我们将深入了解Docker和Docker Compose的核心概念、算法原理、具体操作步骤和数学模型公式,并提供详细的代码实例和解释。此外,我们还将讨论实际应用场景、工具和资源推荐

    2024年02月19日
    浏览(37)
  • Docker高级——DockerCompose部署SpringBoot项目

    项目目录一览 项目源码Gitee地址 准备数据库 添加pom依赖 主启动类 Config层 RedisConfig SwaggerConfig Entity层 UserDTO Mapper层 Service层 Controller层 配置文件 准备数据库 准备Redis 启动项目成功 浏览器测试 http://localhost:6001/user/find/88 访问swagger页面进行测试 http://localhost:6001/swagger-ui.html 测试

    2024年02月03日
    浏览(48)
  • Docker笔记之DockerCompose+yaml详解

    Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。 如果你还不了解 YML 文件配置,可以先阅读 YAML 入门教程。 Compose 使用的

    2024年02月16日
    浏览(74)
  • 一篇文章搞懂Docker、DockerCompose

    大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题 开发、测试、生产环境有差异 例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部

    2024年01月18日
    浏览(47)
  • CentOS 安装 Docker 和 DockerCompose,超详细

    Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。 Docker CE 支持 64 位版

    2024年02月11日
    浏览(42)
  • Docker-Dockerfile-DockerCompose的那些事

    一、Docker背景 1.1 环境不一致 我本地运行没问题啊:由于环境不一致,导致相同的程序,运行结果却不一致。 1.2 隔离性 哪个哥们又写死循环了,怎么这么卡:在多用户的操作系统下,会因为其他用户的操作失误影响到你自己编写的程序。 1.3 弹性伸缩 淘宝在双11,用户量暴

    2024年02月12日
    浏览(51)
  • 模型存储:使用Docker和DockerCompose管理机器学习模型

    作者:禅与计算机程序设计艺术 在现代数据驱动的应用中,机器学习模型越来越受到重视,而管理这些模型也变得十分重要。传统的方式包括将模型部署到不同服务器上,但这样做会导致资源浪费、高昂的维护成本以及硬件配置上的限制。Docker 和 Docker Compose 是构建容器化应

    2024年02月07日
    浏览(35)
  • Docker:Docker和DockerCompose:如何解决容器间的认证和授权问题

    作者:禅与计算机程序设计艺术 作为一款开源的容器编排工具,Docker 在容器应用中具有广泛的应用。然而,容器间的认证和授权问题一直困扰着用户。本文旨在探讨如何使用 Docker 和 Docker Compose 解决这个问题。 引言 1.1. 背景介绍 随着云计算和 DevOps 的兴起,容器化技术逐渐

    2024年02月07日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包