微服务自动化【Docker-Compose】

news2024/11/20 14:23:32

目录

1. docker-compose 

2. docker-compose安装与配置

3. docker-compose.yml 配置文件基本介绍

3.1 version: 指定 docker-compose.yml 文件的写法格式 

3.2 services:多个容器集合

4. docker-compose 基本指令

5. docker-compose 网络

5.1 指定网络模式

5.2 引用外部已存在的网络

5.3 自定义网络


1. docker-compose 

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排

通过编写docker-compose文件可对多个服务同时进行启动/停止/更新(可定义依赖,按顺序启动服务)

docker-compose将所管理的容器分为3层结构:

 

docker-compose.yml组成一个project,project里包括多个service,每个service定义了容器运行的镜像(或构建镜像) 

Docker-Compose的工程配置文件默认为docker-compose.yml 

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

那么效率之低,维护量之大可想而知.而使用 Docker Compose 可以轻松、高效的管理容器, 它是一个用于定义和运行多容器 Docker 的应用程序工具.

三步过程:

1)用dockerfile,或者镜像定义应用程序的环境,以便在任何地方复制.

2)在docker-compose.yml中定义组成应用程序的服务,以便它们可以在单独的环境中一起运行.

3)运行docker compose up启动并运行整个应用程序. 

2. docker-compose安装与配置

1. 上传文件

将docker-compose-Linux-x86_64重命名为docker-compose 

2. 将docker-compose-Linux-x86_64重命名为docker-compose

cd /usr/local/bin

3. 添加可执行权限

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

3. docker-compose.yml 配置文件基本介绍

3.1 version: 指定 docker-compose.yml 文件的写法格式 

Compose目前有三个版本分别为Version 1,Version 2,Version 3,Compose区分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+).Version 2支持更多的指
令.Version 1将来会被弃用.

3.2 services:多个容器集合

services:
     容器1:
     容器2:
  • image:镜像名称或镜像ID.如果镜像在本地不存在,Compose将会尝试拉取镜像
  • build:服务除了可以基于指定的镜像,还可以基于一份Dockerfile,在使用up启动时执行构建任务,构建标签是build,可以指定Dockerfile所在文件夹的路径.Compose将会利用 Dockerfile自动构建镜像,然后使用镜像启动服务容器
  • hostname:启动高可用(集群)微服务时,必须与代码配置中的spring.profiles属性一致.
  • network_mode:配置服务容器的网络模式
  • environment:环境变量配置,可以用数组或字典两种方式

environment:

          RACK_ENV: development

          SHOW: 'ture'

-------------------------

environment:

    - RACK_ENV=development

    - SHOW=ture 

4. docker-compose 基本指令

1. 查看版本信息 

docker-compose -v

2. 构建并启动容器

docker-compose up

3. 启动单个服务

docker-compose up 服务名称

4. 后台启动服务

docker-compose up -d

5. 停止和删除容器、网络、卷、镜像

docker-compose down

6. 启动指定服务或启动所有服务

docker-compose start [服务名称]

7. 停止指定服务或停止所有服务

docker-compose stop [服务名称]

8. 列出所有运行容器

docker-compose ps

9. 进入指定容器

docker-compose exec

10. 删除所有(停止状态的)服务容器

docker-compose rm

 参数:

    -f:强制直接删除,包括非停止状态的容器

    -v:删除容器所挂载的数据卷

5. docker-compose 网络

5.1 指定网络模式

version: '3'
services:
 nginx:
  container_name: my-nginx
  image: nginx
  ports:
    - 9999:80
  volumes:
    - /home/nginx/html:/etc/nginx/html
    - /home/nginx/conf.d:/etc/nginx/conf.d
    - /home/nginx/log:/var/log/nginx
  restart: always
  network_mode: "bridge"
  •  写法
network_mode:"bridge"
network_mode:"host"
network_mode:"none"
network_mode:"service:[service_name]"
network_mode:"container:[container name/id]"

5.2 引用外部已存在的网络

version: '3'
services:
  nginx:
    container_name: my-nginx
    image: nginx
    ports:
      - 9999:80
    volumes:
      - /home/nginx/html:/etc/nginx/html
      - /home/nginx/conf.d:/etc/nginx/conf.d
      - /home/nginx/log:/var/log/nginx
   restart: always
   networks:
     - test-net
networks:
  test-net:
    external:
      name: mynet

5.3 自定义网络

version: '3'
services:
  nginx:
    container_name: my-nginx
    image: nginx
    ports:
      - 9999:80
    volumes:
      - /home/nginx/html:/etc/nginx/html
      - /home/nginx/conf.d:/etc/nginx/conf.d
      - /home/nginx/log:/var/log/nginx
    restart: always
    networks:
      test-net:
        ipv4_address: 192.168.101.110
networks:
  test-net:
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.101.0/24
          gateway: 192.168.101.1

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/62386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不懂业务不清楚指标?这40套可视化大屏模板,让你突破职场天花板

报表可以说是中国职场的一大特色,不少职场人需要每天做各种报表给领导或者业务决策者看,为此甚至诞生了不少的“表哥表姐”。但很多人在做报表的时候其实并不懂业务,需要找业务确定业务指标才做的下去。 今天我就分享40多个报表模板&#xf…

Spark 3.0 - 10.Ml 常用 Sample 采样方法

目录 一.引言 二.数据准备 三.随机采样 Sample 四.按权重拆分 randomSplit 五.分层采样 sampleByKey 六.总结 一.引言 使用 Spark 进行机器学习、数据分析等项目时,常常需要对数据进行采样,下面介绍三种最常用的采样方法: A.随机采样:…

Vue3 学习笔记 —— 自动导入 Vue3 APIs、v-model

目录 1. 自动导入 Vue3 APIs —— unplugin-auto-import/vite 2. v-model 2.1 相较于 Vue2,Vue3 做出了哪些变化? 2.2 绑定一个 v-model 2.2.1 父组件 2.2.2 子组件 2.3 绑定多个 v-model 2.3.1 父组件 2.3.2 子组件 2.4 v-model 中的自定义修…

Android Material Design之ShapeableImageView(十三)

效果图 资源引入 implementation com.google.android.material:material:1.4.0属性 属性描述android:id控件idandroid:layout_width控件长度android:layout_height控件高度app:shapeAppearance控件外观样式app:strokeWidth画笔粗度app:strokeColor画笔颜色android:src图像资源…

MySQL逻辑架构

逻辑架构剖析 服务器处理客户端请求 数据库查询请求流程: 连接层 系统(客户端)访问 MySQL 服务器前,做的第一件事就是建立 TCP 连接。 经过三次握手建立连接成功后, MySQL 服务器对 TCP 传输过来的账号密码做身份认…

了解Wi-fi频段概念

前言 信道带宽,应该了解wi-fi频段,这样才能分析有多少信道带宽可用,以及如何在没有任何干扰(失真)的情况下有效地使用它。 2.4GHz和5GHz频段可用于wi-fi。 2.4 GHz Wi-Fi频段:在2.4 GHz频段,…

通过Shell脚本自动安装HiveJDBC测试提供CDH5网盘地址

〇、参考地址 1、Linux下编写脚本自动安装hive https://blog.csdn.net/weixin_44911081/article/details/121227024?ops_request_misc%257B%2522request%255Fid%2522%253A%2522163695916016780269859534%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%252…

Linux——网络配置(重点)

目录 一、查看网络IP和网关 1.1 那怎么看连接成功呢? 1.1.1 虚拟机接受主机 1.1.2 主机可以接收到虚拟机 1.2 怎么查看电脑的IP地址 方法一: 方法二: 1.3 怎么查看虚拟机的IP地址 二、网络连接模式 2.1 基本了解 2.2 VMware三种网络…

夯实算法-每日温度

题目:LeetCode 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。…

【关系抽取】基于Bert的信息抽取模型CasRel

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

冒名顶替综合症:悄悄地杀死你的梦想

如今,越来越多的开发人员自学成才,很容易消极地与那些拥有计算机科学学士学位或硕士学位的同事进行比较,但请不要这样做。 你们中的很多都很出色,只是你们不清楚这一点。看到那些认为自己不够优秀,但实际上很了不起的人…

MySQL语句

目录 一、常用查询 二、高级SQL语句 1、按关键字排序 单字段排序 按分数降序排列 结合条件过滤 多字段排序 查询学生信息先按兴趣id升序排列,相同分数的,id按升序排列 区间判断及查询不重复记录 嵌套/多条件 对hobbyid进行分组查询&#xff0c…

RabbitMQ学习笔记之Work Queues

工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。 相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进 程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起…

Nacos2.0.3集群搭建

集群搭建 前置条件 JDK 1.8MySQL 5.7.29Nacos 2.0.3 搭建过程 将Nacos安装包上传至三个服务器,本次搭建使用三个端口来模拟三个不同的主机解压: tar -zvxf nacos-server-2.0.3.tar.gzNacos持久化,首先确保服务器已经安装MySQL(Nacos持久化要…

爆肝!阿里最新版的Spring Security源码手册,强行霸占GitHub榜首

写在前面 Spring Security 的前身是 Acegi Security,在被收纳为Spring 子项目后正式更名为Spring Security。在笔者成书时,Spring Security已经升级到5.1.3.RELEASE版本,加入了原生OAuth2.0框架,支持更加现代化的密码加密方式。 …

你入职的时候一定要问领导要的maven私服配置文件,它是什么?Nexus入门使用指南

上一篇教大家如何在Linux搭建Nexus Linux安装Nexus(图文解说详细版) 文章目录🙋登录Nexus👰在maven中配置自己的私服地址🙇在idea中使用nexus作为maven私服💑 引用nexus里面的jar包💇配置maven文…

【NLP】自然语言处理的语料库与词库

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

双十二有哪些实用性强的数码好物?值得入手的实用数码好物推荐

赶在年末的双十二快来了,大家有没有心仪的数码好物正在购物车里蠢蠢欲动呢?入手数码产品最重要的还是要看其实用性强不强,下面,我整理了一份值得入手的实用数码好物清单,希望能给大家有个参考。 一、蓝牙耳机 蓝牙耳…

10、Springboot整合Security很全

1.什么是Security SpringSecurity是基于Spring AOP和Servlet过滤器的安全框架。 它提供全面的安全性解决方案,同时在Web 请求级和方法调用级处理身份确认和授权。 2.Spring Security核心功能? (1)认证(你是谁&…

Java集合容器面试题(2023最新版)

集合容器概述 什么是集合 集合框架:用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 接口:表示集合的抽象数据类型。接口…