docker day05

昨日内容回顾:
    - dockerfile的优化
        - 编译速度
            - 充分利用缓存镜像,将不常变更的指令放在靠前的位置;
            - 在不影响功能的前提下,最好是可以合并多条指令,可以减少中间容器或者镜像的产生;
            - 软件源最高更换国内较稳定的软件源,相比国外的软件源速度会更快;
            - 使用".dockerignore"文件忽略Dockerfile编译不需要的文件;
            
        - 镜像体积大小
            - 删除无用的缓存文件,比如说已经安装的编译器,软件包,缓存等信息;
            - 如果软件能够在较小的基础镜像运行起来,建议使用小镜像,比如alpine,busybox;
            - 基于多阶段构建,将需要的软件包进行拷贝即可;
    - 进阶知识
        - namespace:
            对资源进行隔离,包括但不限于: ipc,user,mnt,net,uts,pid....
        - chroot:
            将程序所在一个目录路径下,指定为个目录为根目录。
        - cgroup:
            对资源限制,包括但不限于cpu,memory,disk,...
        - overlay2
            联合文件系统,lower(只读),upper(读写),work(临时存储文件),merged(给用户的展示层)
        - docker 容器相关的命令补充:
            - docker logs
                信息输出到"/dev/stderr","/dev/stdout"
            - docker run  --restart
                no:
                    不重启。
                always:              *****
                    总是重启。
                unless-stop:         ***
                    除非重启前容器已经处于退出状态,否则也会重启。
                on-failure
                    等效于always。
                on-failure:3
                    表示重启次数达到3次后就不在重启。
                    
    - docker网络
        - 单机网络
            - none
                不分配和任何网卡。
            - host
                和宿主机共享网络空间。效率最高。
            - bridge
                桥接模式,默认模式。会生成一对虚拟网卡。
            - container
                使用某个已存在容器的网络空间。
            - custom
                自动以网络。
                
        - 跨主机网络
            - overlay 
                叠加网络。
                
                

今日内容:
    - docker-compose
    - docker registry
    - harbor
    - hub的仓库使用
    - prometheus
    
    
    
安装docker-compose:
    1.部署docker-compose
yum -y install epel-release
yum -y install docker-compose

    2.查看docker compose的版本 
docker-compose version

    快速部署:
wget http://192.168.11.253/Docker/day05-/softwares/oldboyedu-docker-compose.tar.gz
tar xf oldboyedu-docker-compose.tar.gz && cd docker-compose && yum -y localinstall *.rpm

使用docker-compose批量启动zabbix系统:
cat > docker-compose.yaml <<EOF
version: '3.3'

# 指定网络配置
networks:
    # 网络名称
    zabbix-net:
       # 配置和IP地址相关的信息
       ipam:
         # 指定驱动,若不指定,则默认值为default,以单点网络为例,默认的网络是bridge类型哟~
         # driver: default
         # 指定网络的配置信息
         config:
             # 指定子网
           - subnet: 172.30.100.0/24
             # 对于gateway参数目前仅有"version 2"才支持哟~
             # gateway: 172.30.100.254  
       # 给网络打标签
       labels:
         school.oldboyedu.com: "老男孩IT教育"
         class.oldboyedu.com: "Linux80"
         auther.oldboyedu.com: "oldboyedu-linux"

# 指定服务配置
services:
   # 服务的名称
   mysql-server:
     # 指定服务的镜像名称
     image: mysql:8.0
     # 指定容器的重启策略
     restart: always
     # 向容器传递环境变量
     environment:
       MYSQL_ROOT_PASSWORD: root_pwd
       MYSQL_DATABASE: zabbix
       MYSQL_USER: zabbix
       MYSQL_PASSWORD: zabbix_pwd
     # 指定网络
     networks:
       - zabbix-net
     # 容器的启动命令,相当于Dockerfile的CMD指令
     command: ["--character-set-server=utf8", "--collation-server=utf8_bin", "--default-authentication-plugin=mysql_native_password"]
     
   zabbix-java-gateway:
     image: zabbix/zabbix-java-gateway:alpine-6.2-latest
     restart: always
     networks:
       - zabbix-net
     
   zabbix-server:
     # 指定服务依赖,表示当前依赖于"mysql-server"服务
     depends_on:
       - mysql-server
     image: zabbix/zabbix-server-mysql:alpine-6.2-latest
     restart: always
     environment:
       DB_SERVER_HOST: mysql-server
       MYSQL_DATABASE: zabbix
       MYSQL_USER: zabbix
       MYSQL_PASSWORD: zabbix_pwd
       MYSQL_ROOT_PASSWORD: root_pwd
       ZBX_JAVAGATEWAY: zabbix-java-gateway
     networks:
       - zabbix-net
     # 指定端口映射,左边的是宿主机的端口,右边是容器端口,类似于"-p"选项。
     ports:
       - "10051:10051"
       
   zabbix-web-nginx-mysql:
     depends_on:
       - zabbix-server
     image: zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest
     ports:
       - "80:8080"
     restart: always
     environment:
       DB_SERVER_HOST: mysql-server
       MYSQL_DATABASE: zabbix
       MYSQL_USER: zabbix
       MYSQL_PASSWORD: zabbix_pwd
       MYSQL_ROOT_PASSWORD: root_pwd
     networks:
       - zabbix-net
EOF


创建:
docker-compose -f 1111 -p oldboyedu-linux82 up -d    
    通用选项说明:
        -f:
            指定docker-compose的配置文件,若不指定,则默认值为"docker-compose.yaml"或者"docker-compose.yml"。
        -p:
            指定项目名称。
            
    up:
        启动服务,常用选项"-d",表示后台启动。

docker-compose run zabbix-web-nginx-mysql nginx -t
    启动容器时指定命令。类似于docker run,他会创建新的容器哟。


删除:
docker-compose -f 1111 -p oldboyedu-linux82 down  # 删除容器和网络
docker-compose -f 1111 -p oldboyedu-linux82 down -v  # 删除匿名存储卷
docker-compose -f 1111 -p oldboyedu-linux82 down -v  --rmi  # 删除镜像和匿名存储卷


查看:
docker-compose ps
    查看各个服务的容器信息。
docker-compose ps zabbix-web-nginx-mysql
    查看指定服务的容器信息。
    
docker-compose logs -f zabbix-web-nginx-mysql
    查看"zabbix-web-nginx-mysql"服务的日志
    
docker-compose top zabbix-web-nginx-mysql
    查看"zabbix-web-nginx-mysql"服务容器的进程信息
    
docker-compose images 
    查看服务使用的镜像信息。
    
docker-compose config 
    查看docker-compose的配置文件。


其他:    
docker-compose stop
    停止服务
    
docker-compose start
    启动服务。
    
docker-compose restart
    重启服务。
    
docker-compose build
    编译或者重新编译服务镜像。
    如果你要执行该命令,请必须有build字段,该字段内得有Dockefile相关信息。若不指定该字段,则会跳过编译!
    
    

docker-compose结合Dockerfile实战:
cat > docker-compose.yaml <<EOF
version: "3.3"

services:
   oldboyedu-linux82-docker-compose:
      image: oldboyedu-linux82-docker-compose:v3.0
      # 指定镜像编译的相关参数
      build:
        # 指定上下文,表示当前所在的路径,便于找到dockerfile
        context: ./dockerfile
        # 指定dockerfile的名称
        dockerfile: Dockerfile

   oldboyedu-linux82-docker-compose-2022:
      image: oldboyedu-linux82-docker-compose:v4.0
      build:
        context: ./dockerfile
        dockerfile: Dockerfile
EOF


 

今日内容回顾:
    - 单机编排工具:docker-compose
    - 私有仓库: docker-registry
    - 企业级私有仓库: harbor 
        - http部署
        - https部署
        - docker registry ---> harbor
        - 主从复制
        - 高可用架构
    - 官方镜像仓库: docker hub 

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

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

相关文章

用于设计 CNN 的 7 种不同卷积

一 说明 最近对CNN架构的研究包括许多不同的卷积变体&#xff0c;这让我在阅读这些论文时感到困惑。我认为通过一些更流行的卷积变体的精确定义&#xff0c;效果和用例&#xff08;在计算机视觉和深度学习中&#xff09;是值得的。这些变体旨在保存参数计数、增强推理并利用目标…

【Hash表】找出出现一次的数字-力扣 136

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

“新”心相印 | 长沙市网络代表人士培训班“破冰”联谊“湘”味十足

搜狐网湖南&#xff08;文/莫谦&#xff09;9月18日至9月22日&#xff0c;首期长沙市网络代表人士专题培训班在北京大学举行&#xff0c;培训班学员主要是长沙网络名人联盟成员&#xff0c;涵盖抖音达人、微博博主、网络作家、网络大V等。 为了加强长沙网络名人联盟组织建设&a…

6-1 汉诺塔

汉诺&#xff08;Hanoi&#xff09;塔问题是一个经典的递归问题。 设有A、B、C三个塔座&#xff1b;开始时&#xff0c;在塔座A上有若干个圆盘&#xff0c;这些圆盘自下而上&#xff0c;由大到小地叠在一起。要求将塔座A上的圆盘移到塔座B上&#xff0c;并仍按同样顺序叠放。在…

毕业设计|基于51单片机的空气质量检测PM2.5粉尘检测温度设计

基于51单片机的空气质量检测PM2.5粉尘检测温度设计 1、项目简介1.1 系统构成1.2 系统功能 2、部分电路设计2.1 LED信号指示灯电路设计2.2 LCD1602显示电路2.3 PM2.5粉尘检测电路设计 3、部分代码展示3.1 串口初始化3.1 定时器初始化3.2 LCD1602显示函数 4 演示视频及代码资料获…

【Linux基础】第29讲 Linux用户和用户组权限控制命令(一)

1 useradd 添加新用户 &#xff08;注意&#xff1a;当前用户必须有添加用户的权限&#xff09; 1&#xff09;基本语法 useradd 用户名&#xff08;功能描述&#xff1a;添加新用户&#xff09; 2&#xff09;案例 rootsue-virtual-machine:/usr/local# useradd hadoop 2 …

8.4 【MySQL】文件系统对数据库的影响

因为 MySQL 的数据都是存在文件系统中的&#xff0c;就不得不受到文件系统的一些制约&#xff0c;这在数据库和表的命名、表的大小和性能方面体现的比较明显&#xff0c;比如下边这些方面&#xff1a; 数据库名称和表名称不得超过文件系统所允许的最大长度。 每个数据库都对应…

【力扣每日一题】2023.9.10 打家劫舍Ⅳ

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目翻译有些烂&#xff0c;我来二次翻译一下&#xff0c;找出数组中k个两两互不相邻的数&#xff0c;求出它们的最大值。要求最大值尽可…

计算机竞赛 深度学习 python opencv 火焰检测识别

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

初识 python 装饰器

1.什么是装饰器&#xff1f; 装饰器&#xff08;Decorator&#xff09;是Python中一种用于修改函数或类的行为的设计模式。装饰器允许您在不修改原始函数或类的情况下&#xff0c;给它们添加新的功能&#xff0c;这使得代码更具可重用性和可扩展性。简而言之&#xff0c;就是一…

CAN - 基础

CAN 基础 概念分类特点物理层收发器线与编码方式通信方式采样点/位 常见故障 数据链路层CAN控制器数据帧分类数据帧格式数据帧DBC解析CRC校验远程帧 总线竞争与仲裁非破坏性仲裁机制 节点状态与错误处理机制节点状态错误处理机制错误帧 概念 分类 CANCAN FD高速CAN低俗容错CA…

Spring Boot 自动注入失败的原因

问题 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type com.sveinn.chatbotdomain.zsxq.service.ZsxqApi available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {ja…

QtCreator配置代码字体和颜色

文件路径 默认配色方案 This XML file does not appear to have any style information associated with it. The document tree is shown below. <style-scheme version"1.0" name"Default"> <style name"Text" foreground"#000…

Ubuntu 22 Python 虚拟环境配置

首先下载 Ubuntu 系统的 virtualenv 依赖: $ sudo apt install virtualenv因为 Ubuntu 22 默认的版本刚好是我需要的 Python 3.10 版本, 这里就不安装其他版本了。 日常使用 virtualenvwrapper 的命令: 创建新的虚拟环境$ mkvirtualenv -p Python版本号 虚拟环境名称查看已创…

Matlab信号处理:FFT频谱分辨率

频谱分辨率&#xff1a; 其中为采样间隔&#xff0c;为采样点数。 FFT分辨率&#xff1a; 其中为采样频率&#xff0c;为FFT点数。 有两正弦函数&#xff0c;频率分别为 f1 1Hz&#xff0c;f2 10Hz&#xff0c;f3 40Hz&#xff1b; 示例1&#xff1a; 采样频率 fs 1000H…

MySQL进阶篇3-视图和存储过程以及触发器的学习使用

视图/存储过程&#xff08;函数&#xff09;/触发器 视图&#xff1a;由表动态生成&#xff0c;虚拟的表&#xff0c;保存的是sql的逻辑。 创建视图&#xff1a; ​ create [or replace] view viewName【列名列表】 as select 语句 [with [cascaded|local] check option] 修…

国外发达国家码农是真混得好么?

来看看花旗工作十多年的码农怎么说吧! 美国最大的论坛 Reddit&#xff0c;之前有一个热帖&#xff1a; 一个程序员说自己喝醉了&#xff0c;软件工程师已经当了10年&#xff0c;心里有 好多话想说&#xff0c;“我可能会后悔今天说了这些话。”他洋洋洒洒写了 一大堆&#xff…

java获取音频,文本准转语音时长

jar 以上传到资源中 <dependency><groupId>it.sauronsoftware</groupId><artifactId>jave</artifactId><version>1.0.2</version></dependency> mvn install:install-file -DfileD:\xxx\xxx\jave-1.0.2.jar -DgroupIdit.sauro…

【Node.js】数据库配置与操作、Session实现原理、JWT实现原理:

文章目录 一、数据库配置与操作【1】 数据库的基本操作【2】 使用 mysql 模块操作 MySQL 数据库 二、Session实现原理【1】HTTP 协议的无状态性【2】Cookie【3】Session 的工作原理【3】在 Express 中使用 Session 认证 三、JWT实现原理【1】JWT 的工作原理【2】JWT 的组成部分…

Linux内核源码分析 (B.4) 深度剖析 Linux 伙伴系统的设计与实现

Linux内核源码分析 (B.4) 深度剖析 Linux 伙伴系统的设计与实现 文章目录 1\. 伙伴系统的核心数据结构2\. 到底什么是伙伴3\. 伙伴系统的内存分配原理4\. 伙伴系统的内存回收原理5\. 进入伙伴系统的前奏5.1 获取内存区域 zone 里指定的内存水位线5.2 检查 zone 中剩余内存容量…