我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用Docker Compose快速部署多容器服务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用Docker Compose快速部署多容器服务

小编给大家分享一下如何使用Docker Compose快速部署多容器服务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

    1 什么是Docker Compose

    前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知。

    使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具

    2 安装Docker Compose

    安装命令:

    [root@iZ2ze4m2ri7irkf6h7n8zoZ ~]# curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose[root@iZ2ze4m2ri7irkf6h7n8zoZ ~]# chmod +x /usr/local/bin/docker-compose

    检查是否安装成功:

    [root@iZ2ze4m2ri7irkf6h7n8zoZ ~]# docker-compose -v

    3 Docker Compose文件格式的简单介绍

    Docker Compose文件一般命名为docker-compose.yml,并且执行Docker-compose命令时在该文件所在目录下执行。

    Docker Compose 分为三层,分别是工程(project)、服务(service)/引用标签、容器(container)

    例如:

    docker-compose.yml   # 一个文件代表一个project serveices:          # 服务   container-name:   # 容器     build:       - xxx:xxx network:            # 引用标签   xxx:

    下面是一个标准的docker-compose.yml文件

    version: "3"  # 指定版本services:     # services  proxy:      # 自定义容器名称    build: ./proxy  # Dockerfile所在目录,用于构建容器    networks: # 自定义容器网络      - frontend  app:           build: ./app    networks:      - frontend      - backend  db:    image: postgres    networks:      - backendnetworks:  frontend:    driver: custom-driver-1  backend:    driver: custom-driver-2    driver_opts:      foo: "1"      bar: "2"

    4 Docker Compose常用命令

    ps:列出所有运行容器

    docker-compose ps

    logs:查看服务日志输出

    docker-compose logs

    port:打印绑定的公共端口,下面命令可以输出 eureka 服务 8761 端口所绑定的公共端口

    docker-compose port eureka 8761

    build:构建或者重新构建服务

    docker-compose build

    start:启动指定服务已存在的容器

    docker-compose start eureka

    stop:停止已运行的服务的容器

    docker-compose stop eureka

    rm:删除指定服务的容器

    docker-compose rm eureka

    up:构建、启动容器

    docker-compose up

    kill:通过发送 SIGKILL 信号来停止指定服务的容器

    docker-compose kill eureka

    pull:下载服务镜像

    docker-compose pull eureka

    scale:设置指定服务运气容器的个数,以 service=num 形式指定

    docker-compose scale user=3 movie=3

    run:在一个服务上执行一个命令

    docker-compose run web bash

    5 使用Docker Compose一键部署Spring Boot+Redis实战

    5.1 构建应用

    5.1.1 Spring Boot项目

    依赖:

    <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency><!--redis--><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-redis</artifactId></dependency>

    配置文件:

    spring:  redis:    #host: 127.0.0.1    host: ymx.redis    port: 6379    password:    jedis:      pool:        max-active: 8        max-wait: -1        max-idle: 500        min-idle: 0    lettuce:      shutdown-timeout: 0

    controller代码:

    @RestControllerpublic class HelloController {    @Autowired    private RedisTemplate<String, String> redisTemplate;    @RequestMapping("/hello/{id}")    public String hello(@PathVariable("id") Integer id) {        return redisTemplate.opsForValue().get(String.valueOf(id));    }    @RequestMapping("/save/{id}/{name}")    public String save(@PathVariable("id") Integer id, @PathVariable("name") String name) {        try {            redisTemplate.opsForValue().set(String.valueOf(id), "Hello " + name + "!");        } catch (Exception e) {            return "false";        }        return "success";}
    5.1.2 Redis配置文件

    只是将redis自带的redis.conf做了一点修改

    #注释掉bind 127.0.0.1# bind 127.0.0.1 -::1#修改protected-mode yes->noprotected-mode no

    5.2 打包应用并构建目录

    5.2.1 打包Spring Boot项目

    如何使用Docker Compose快速部署多容器服务

    5.2.2 上传redis.conf配置文件
    5.2.3 目录结构
    - mycompose  - docker-compose.yml   - rd      - Dockerfile      - redis.conf  - sp    - Dockerfile      - sp_redis-0.0.1-SNAPSHOT.jar

    5.3 编写Dockerfile

    5.3.1 Spring Boot容器的Dockerfile
    FROM java:8MAINTAINER YMX "1712229564@qq.com"COPY sp_redis-0.0.1-SNAPSHOT.jar /root/sp_redis-0.0.1-SNAPSHOT.jarEXPOSE 8080ENTRYPOINT ["java", "-jar","/root/sp_redis-0.0.1-SNAPSHOT.jar"]
    5.3.2 redis容器的Dockerfile
    FROM redis  MAINTAINER ymx 1712229564@qq.comCOPY redis.conf /usr/local/etc/redis/redis.confEXPOSE 6379CMD ["redis-server","/usr/local/etc/redis/redis.conf" ]

    5.4 编写docker-compose.yml

    version: "2.8" # 表示该 Docker-Compose 文件使用的是 Version 2 fileservices:  sp-demo:       # 指定服务名称    build: ./sp  # 指定 Dockerfile 所在路径    ports:       # 指定端口映射      - "9001:8080"    links:      - re-demo:ymx.redis # 进行容器链接  re-demo:    build: ./rd

    5.5 运行并测试部署结果

    运行:

    [root@iZ2ze4m2ri7i mycompose]# docker-compose upCreating network "mycompose_default" with the default driverBuilding re-demoSending build context to Docker daemon  96.77kBStep 1/5 : FROM redislatest: Pulling from library/redis......

    测试:

    [root@iZ2ze4m2ri7i mycompose]# curl http://localhost:9001/save/2/Ymxsuccess[root@iZ2ze4m2ri7i mycompose]# curl http://localhost:9001/hello/2Hello Ymx!

    看完了这篇文章,相信你对“如何使用Docker Compose快速部署多容器服务”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    如何使用Docker Compose快速部署多容器服务

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    如何使用Docker Compose快速部署多容器服务

    小编给大家分享一下如何使用Docker Compose快速部署多容器服务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1 什么是Docker Compose前面我们使用 Docker 的时候,定义 Dockerfile 文
    2023-06-29

    容器服务使用TKE快速部署ChatGLM

    1. 登录云容器服务TKE控制台。2. 在TKE控制台左侧导航栏中选择“集群”,然后点击“新建集群”按钮。3. 在“创建集群”页面中,根据需求选择合适的集群配置,例如选择地域、可用区、网络等参数。然后点击“下一步”。4. 在“配置信息”页面
    2023-09-21

    Linux下如何快速部署DHCP服务器

    这篇文章主要讲解了“Linux下如何快速部署DHCP服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux下如何快速部署DHCP服务器”吧!测试环境设置在这步中我们会使用如下的测试环
    2023-06-27

    如何快速部署MySQL数据库服务器

    这篇文章主要讲解了“如何快速部署MySQL数据库服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何快速部署MySQL数据库服务器”吧!MySQL是一个关系型数据库管理系统,由瑞典MyS
    2023-06-27

    如何在快速在服务器上部署Golang应用?

    Golang如何快速部署到服务器上?近年来,Golang(简称Go)作为一门新兴的编程语言,以其高效、简洁、并行的特性而备受瞩目。对于开发人员来说,如何快速将Golang应用程序部署到服务器上是一个重要的技能。本文将介绍如何使用常见的工具
    如何在快速在服务器上部署Golang应用?
    2024-01-16

    如何利用AWS的EC2技术部署服务器的Docker容器

    这篇文章主要介绍“如何利用AWS的EC2技术部署服务器的Docker容器 ”,在日常操作中,相信很多人在如何利用AWS的EC2技术部署服务器的Docker容器 问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如
    2023-06-10

    超实用!服务器如何快速实现一键环境部署!

    很多新手在建站时都会在环境部署这一环境中耗费大量时间,如何选择自己需要的环境配件,一一下载、安装、配置……虽说没有什么特别困难的地方,但却十分麻烦。有没有其他更简单的操作方法呢?下面我就为大家介绍我是如何快速实现一键环境部署的!首先你需要下
    2023-06-04

    Docker容器化部署Nginx的详细步骤与最佳实践(如何在Docker中高效部署Nginx服务?)

    本文提供了详细步骤和最佳实践,指导如何将Nginx部署为Docker容器。步骤包括创建镜像、运行容器、配置Nginx以及管理容器。最佳实践建议使用最新版本、自定义配置、启用日志记录、使用反向代理以及监控容器。此外,本文还强调了安全容器的重要性,并建议定期备份和更新。
    Docker容器化部署Nginx的详细步骤与最佳实践(如何在Docker中高效部署Nginx服务?)
    2024-04-02

    租用美国服务器部署wordpress如何加速

    租用美国服务器部署WordPress时,可以采取以下几种方法来加速网站加载速度:使用CDN(内容分发网络):CDN可以帮助将网站内容缓存到全球各地的服务器上,从而加速网站加载速度。推荐使用国际知名的CDN服务提供商,如Cloudflare、
    租用美国服务器部署wordpress如何加速
    2024-04-22

    如何使用Flask部署到阿里云服务器

    本文将详细介绍如何使用Flask框架部署应用程序到阿里云服务器,包括环境配置、服务器安装、应用程序部署等步骤。随着云计算技术的飞速发展,越来越多的企业和个人开始利用云服务器进行应用程序的开发和部署。其中,Flask框架是一个非常流行的PythonWeb框架,它以其简单易用、扩展性强等特点受到广大开发者们的喜爱。本
    如何使用Flask部署到阿里云服务器
    2023-10-30

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录