尚硅谷Docker实战教程-笔记12【高级篇,Docker-compose容器编排】

news2024/11/28 0:29:45
  • 尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】
  • 视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili
  1. 尚硅谷Docker实战教程-笔记01【基础篇,Docker理念简介、官网介绍、平台入门图解、平台架构图解】
  2. 尚硅谷Docker实战教程-笔记02【基础篇,Docker安装、镜像加速器配置】
  3. 尚硅谷Docker实战教程-笔记03【基础篇,Docker常用命令】
  4. 尚硅谷Docker实战教程-笔记04【基础篇,Docker镜像】
  5. 尚硅谷Docker实战教程-笔记05【基础篇,Docker本地镜像发布到阿里云与私有库】

  6. 尚硅谷Docker实战教程-笔记06【基础篇,Docker容器数据卷】

  7. 尚硅谷Docker实战教程-笔记07【基础篇,Docker常规安装简介】

  8. 尚硅谷Docker实战教程-笔记08【高级篇,Docker复杂安装详说】

  9. 尚硅谷Docker实战教程-笔记09【高级篇,DockerFile解析】

  10. 尚硅谷Docker实战教程-笔记10【高级篇,Docker微服务实战】

  11. 尚硅谷Docker实战教程-笔记11【高级篇,Docker网络】

  12. 尚硅谷Docker实战教程-笔记12【高级篇,Docker-compose容器编排】

  13. 尚硅谷Docker实战教程-笔记13【高级篇,Docker轻量级可视化工具Portainer】

  14. 尚硅谷Docker实战教程-笔记14【高级篇,Docker容器监控之CAdvisor+InfluxDB+Granfana、Docker终章总结】

目录

2.高级篇(大厂进阶)

5.Docker-compose容器编排

P078【78_compose是什么能干嘛】11:29

P079【79_compose下载安装步骤】07:01

P080【80_compose核心概念】08:02

P081【81_微服务改造升级并生成新镜像】23:31

P082【82_不用compose编排服务上集】02:49

P083【83_不用compose编排服务下集】06:42

P084【84_使用compose编排服务上集】04:19

P085【85_使用compose编排服务中集】11:43

P086【86_使用compose编排服务下集】08:21


2.高级篇(大厂进阶)

5.Docker-compose容器编排

P078【78_compose是什么能干嘛】11:29

Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。

docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样我们又面临了一个问题?

 

如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像、构建容器,这样累都累死了,所以docker官方给我们提供了docker-compose多服务部署的工具。

 

例如要实现一个Web微服务项目,除了Web服务容器本身,往往还需要再加上后端的数据库mysql服务容器,redis服务器,注册中心eureka,甚至还包括负载均衡容器等等。。。。。。

 

Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

 

可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题。

P079【79_compose下载安装步骤】07:01

  • 官网:https://docs.docker.com/compose/compose-file/compose-file-v3/
  • 官网下载:https://docs.docker.com/compose/install/
[root@node001 ~]# curl -SL https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100 57.6M  100 57.6M    0     0  7734k      0  0:00:07  0:00:07 --:--:-- 11.1M
[root@node001 ~]# chmod +x /usr/local/bin/docker-compose
[root@node001 ~]# docker-compose --version
Docker Compose version v2.19.1
[root@node001 ~]# 

P080【80_compose核心概念】08:02

Compose使用的三个步骤

  1. 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件。
  2. 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。
  3. 最后,执行docker-compose up 命令来启动并运行整个应用程序,完成一键部署上线。

Compose常用命令

docker-compose -h                           # 查看帮助

docker-compose up                           # 启动所有docker-compose服务

docker-compose up -d                        # 启动所有docker-compose服务并后台运行

docker-compose down                         # 停止并删除容器、网络、卷、镜像。

docker-compose exec  yml里面的服务id       # 进入容器实例内部  docker-compose exec docker-compose.yml文件中写的服务id /bin/bash

docker-compose ps                      # 展示当前docker-compose编排过的运行的所有容器

docker-compose top                     # 展示当前docker-compose编排过的容器进程

 

docker-compose logs  yml里面的服务id     # 查看容器输出日志

docker-compose config     # 检查配置

docker-compose config -q  # 检查配置,有问题才有输出

docker-compose restart   # 重启服务

docker-compose start     # 启动服务

docker-compose stop      # 停止服务

P081【81_微服务改造升级并生成新镜像】23:31

P082【82_不用compose编排服务上集】02:49

P083【83_不用compose编排服务下集】06:42

P084【84_使用compose编排服务上集】04:19

version: "3"

services:
  microService:
    image: zzyy_docker:1.6
    container_name: ms01
    ports:
      - "6001:6001"
    volumes:
      - /app/microService:/data
    networks: 
      - atguigu_net 
    depends_on: 
      - redis
      - mysql

  redis:
    image: redis:6.0.8
    ports:
      - "6379:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:/data
    networks: 
      - atguigu_net
    command: redis-server /etc/redis/redis.conf

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'db2021'
      MYSQL_USER: 'zzyy'
      MYSQL_PASSWORD: 'zzyy123'
    ports:
       - "3306:3306"
    volumes:
       - /app/mysql/db:/var/lib/mysql
       - /app/mysql/conf/my.cnf:/etc/my.cnf
       - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - atguigu_net
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问

networks:
   atguigu_net: 

P085【85_使用compose编排服务中集】11:43

P086【86_使用compose编排服务下集】08:21

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

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

相关文章

一篇文章搞懂Libevent网络库的原理与应用

1. Libevent介绍 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点: > - 事件驱动( event-driven),高性能; > - 轻量级,专注于网络; > - 源代码相当…

前端(五)——从 Vue.js 到 UniApp:开启一次全新的跨平台开发之旅

🙂博主:小猫娃来啦 🙂文章核心:从 Vue.js 到 UniApp:开启一次全新的跨平台开发之旅 文章目录 UniApp和vue.js什么是UniApp?UniApp的写法什么是vue.js?UniApp与vue.js是什么关系? 为什…

Python+Appium+Pytest自动化测试-参数化设置

来自APP Android端自动化测试初学者的笔记,写的不对的地方大家多多指教哦。(所有内容均以微博V10.11.2版本作为例子) 在自动化测试用例执行过程中,经常出现执行相同的用例,但传入不同的参数,导致我们需要重…

【Redis基础】快速入门

一、初识Redis 1. 认识NoSQL 2. 认识Redis Redis诞生于2009年,全称是Remote Dictionary Server(远程词典服务器),是一个基于内存的键值型NoSQL数据库特征 (1)键值(key-value)型&am…

测试员如何突破自我的瓶颈?我有几点看法

前阵子我自己也对如何“突破瓶颈”思考过,我觉得“突破瓶颈”、“弥补短板”等等都大同小异,从古至今就是测试员们津津乐道的话题。我也对自己该如何“突破瓶颈”总结了几点,跟大家分享下: 1、“常立志、立长志”。“立志”就是目…

Vue脚手架使用【快速入门】

一、使用vue脚手架创建工程 在黑窗口中输入vue ui命令 再更改完路径地址后需要按回车 二、vue工程中安装elementui 第一种可以在黑窗口输入命令安装 npm install -s element-ui第二种使用图形化安装 三、 在vue工程中安装axios 第一种可以在黑窗口输入命令安装 npm inst…

ECMAScript6之一

目录 一、介绍 二、新特性 2.1 let 和 const 命令 2.2 es6的模板字符串 2.3 增强的函数 2.4 扩展的字符串、对象、数组功能 2.5 解构赋值 2.6 Symbol 2.7 Map 和 Set 2.8 迭代器和生成器 2.9 Promise对象 2.10 Proxy对象 2.11 async的用法 2.22 类class 2.23 模块…

linux内核中kmalloc与vmalloc

kmalloc 和 vmalloc 是 Linux 内核中的两种内存分配方法,它们都用于为内核分配内存,但它们在使用和管理内存方面存在一些重要差异。下面我们详细讨论这两种内存分配方法的异同。 相同点: 都是内核空间的内存分配方法。都可以用于动态分配内…

anaconda目录下的pkgs文件夹很大,可以删除吗?

pkgs这个目录占用了6GB的硬盘空间。 其实里面是conda安装第三方包的时候保存在本地的下载文件,大部分是可以删除的。 只是删除后,后续你需要创建虚拟环境的时候或者在虚拟环境下pip安装第三方库的时候,会从网络去下载,没法直接从…

Jmeter的常用设置(一)

文章目录 前言一、Jmeter设置中文 方法一(临时改为中文)方法二(永久改成中文)二、启动Jmeter的两种方式 方法一(直接启动,不打开cmd窗口)方法二(带有cmd窗口的启动)三、调…

【xxl-job】本地部署并接入xxl-job到项目中

本地部署并接入xxl-job到项目中 一、xxl-job简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 什么是分布式任务调度 通常任务调度的程序是集成在应用…

SparkCoreDAG

DAG有向无环图 倒推 故推导程序的执行计划时,先看代码有几个action算子,从action倒推 一个action会产生一个JOB(DAG)(即一个应用程序内的子任务) 一个action一个Job一个DAG 一个application里面可以有多…

Latex:画图识别符号

http://detexify.kirelabs.org/classify.html

RDMA RoCev2 CM建链和Socket建链测试

前言 RDMA在高性能计算,AI大模型训练中发挥着重要的作用。 主流支持RDMA的协议有IB、RoCev1、RoCev2、iWARP。 其中RoCev2是应用最广泛的协议,因为其RDMA over UDP/IP,不依赖昂贵的IB网络设备,同时支持路由,性能上也…

Azure Kinect 之 Note(一)

Azure Kinect Azure Kinect DK 是一款开发人员工具包,配有先进的AI 传感器,提供复杂的计算机视觉和语音模型。 Kinect 将深度传感器、空间麦克风阵列与视频摄像头和方向传感器整合成一体式的小型设备,提供多种模式、选项和软件开发工具包(S…

Web开发模式

Web开发介绍 1 什么是web开发 Web:全球广域网,也称为万维网(www World Wide Web),能够通过浏览器访问的网站。 所以Web开发说白了,就是开发网站的,例如下图所示的网站:淘宝,京东等等 那么我们…

【*2400 线段树】CF444 C

Problem - C - Codeforces 题意: 思路: 首先询问的是权值和,那么维护一个区间和sum,因此pushup部分就好了 考虑修改,区间修改,因此要打标记 一次修改对区间和的贡献不能直接计算,因此我们考…

8-1、Deployment运行应用的机制

Kubernetes 通过各种 Controller 来管理 Pod 的生命周期。为了满足不同业务场景,Kubernetes 开发了 Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 、 CronJob 等多种 Controller。 用户通过 kubectl 创建 Depl…

ENSP模拟器如何设置命令行和描述框的背景颜色及字体

ENSP模拟器如何设置命令行和描述框的背景颜色及字体 选择“菜单 > 工具 > 选项”, 在弹出界面中选择“字体设置”。 单击“字体”后的“选择”设置字体,单击“字体颜色”后的“选择”设置字颜色,单击“背景颜色”后的“选择”设置…

UnityVR--机械臂场景11-简单流水线应用3

目录 一. 前言 二. 设置一个定时器 三. 添加机械臂事件 四. 机械臂控制函数OnArmCtrl 五. 定义上面的3个机械臂移动方法 六. 机械臂各关节转动控制 七. 场景实现 八. 完整代码 一. 前言 上一篇使用了DoTween插件,并且改写了事件的相关参数,本篇…