DevOps持续集成-Jenkins(2)

文章目录

    • DevOps
      • DevOps概述
      • Integrate工具(centos7-jenkins主机)
        • Integrate概述
        • Jenkins介绍
        • CI/CD介绍
        • Linux下安装最新版本的Jenkins⭐
        • Jenkins入门配置
          • 安装必备插件⭐
            • 安装插件(方式一:可能有时会下载失败)
            • 安装插件(方式二:本地安装⭐)
          • 安装Jenkins插件一直失败解决方案⭐
      • Jenkins实战1:构建Freestyle(自由风格)的Jenkins项目(C I 持续集成操作⭐)
        • 项目流程架构图⭐
        • 配置Jenkins的JDK和Maven
        • 配置Publish over SSH(通知目标服务器插件)
        • 在IDEA构建一个springboot项目
          • 测试项目图
          • 项目核心接口代码
        • 第一步:将springboot项目上传到GitLab上(用IDEA插件的方式⭐)
        • 第二步:将gitlab上面的项目代码拉取到Jenkins中⭐
        • 第三步:利用Maven构建项目的jar包⭐
        • 第四步:将构建好的jar包push推送给指定的目标服务器⭐
        • 第五步:利用Dockerfile和推送过来的jar包在目标服务器上生成image从而运行出容器⭐
        • 第六步:测试访问这个容器⭐
      • Jenkins实战2:构建Freestyle(自由风格)的Jenkins项目(C D 持续交付操作⭐)
        • 注意:先完成Jenkins实战1的步骤(⭐)
        • 配置Jenkins根据gitlab的tag(标签)进行构建工程(⭐)
        • 新增两个新的tag标签⭐
          • v1.0.0的tag标签
          • v2.0.0的tag标签
        • 开始进行Jenkins参数化构建工程(基于gitlab上的tag⭐)
          • 测试构建v1.0.0的tag⭐
          • 测试构建v2.0.0的tag⭐

DevOps

DevOps概述

软件开发最初是由两个团队共同组成:(没有采用DevOps之前)

  • 开发团队:从头开始设计和整体系统的构建(编写代码)。需要系统不停的迭代更新。
  • 运维团队:将开发团队的代码进行测试通过后再部署上线。确保系统稳定运行。

没有采用DevOps的缺点:

  • 这看似两个目标不同的团队需要协同完成一个软件的开发。在开发团队指定好计划并完成编写代码后,需要把代码交给运维团队。运维团队向开发团队反馈需要修复的BUG以及一些需要返工的任务。这时开发团队需要经常等待运维团队的反馈。这无疑会延长整个软件开发的周期。

采用DevOps的优点?

  • DevOps的方式可以让公司能够更快地应对更新和市场发展变化,开发可以快速交付,部署也更加稳定。核心就在于简化Dev和Ops团队之间的流程,使整体软件开发过程更快速。说白了就是DevOps有利于快速完成项目,不会浪费时间)

整体的软件开发流程:

  • PLAN:开发团队根据客户的目标制定开发计划
  • CODE:根据PLAN开始编码过程,需要将不同版本的代码存储在一个库中。
  • BUILD:编码完成后,需要将代码构建并且运行。
  • TEST:成功构建项目后,需要测试代码是否存在BUG或错误。
  • DEPLOY:代码经过手动测试和自动化测试后,认定代码已经准备好部署并且交给运维团队。
  • OPERATE:运维团队将代码部署到生产环境中。
  • MONITOR:项目部署上线后,需要持续的监控产品。
  • INTEGRATE:然后将监控阶段收到的反馈发送回PLAN阶段,整体反复的流程就是DevOps的核心即持续集成、持续部署。

为了保证整体流程可以高效的完成,各个阶段都有比较常见的工具,如下图:

Integrate工具(centos7-jenkins主机)

Integrate概述
  • 持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。

  • Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。

  • Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。

Jenkins介绍
  • Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具

  • Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现DevOps的核心工具。

  • Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。

  • Jenkins最主要的工作就是将GitLab上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发布到测试环境或是生产环境。经过大量的测试后,确定发行版本,再发布到生产环境

CI/CD介绍
  • CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。

    • 持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试。
  • CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。

    • 持续交付:让经过持续集成的代码可以进行手动部署。
    • 持续部署:让可以持续交付的代码随时随地的自动化部署。
Linux下安装最新版本的Jenkins⭐
  • 1:创建文件夹并跳转:
mkdir -p /root/jenkins && cd /root/jenkins
  • 2:拉取最新版本的Jenkins镜像:(注意:Jenkins的版本最好在Github上找最新的版本,否则可能会出问题⭐,我们目前最新的是2.359)

在这里插入图片描述
在这里插入图片描述

docker pull jenkins/jenkins:2.359
  • 3:编写docker-compose配置文件:
vi docker-compose.yml

内容如下:

version: "3.1"
services:
  jenkins:
    image: jenkins/jenkins:2.359
    container_name: jenkins
    ports:
      - 9200:8080
      - 50000:50000
    volumes:
      - /usr/local/docker/jenkins_docker/data/:/var/jenkins_home/
  • 4:创建data目录:
mkdir -p /usr/local/docker/jenkins_docker/data/
  • 5:设置data目录写权限:
chmod -R a+w /usr/local/docker/jenkins_docker/data/
  • 6:启动docker-compose文件:
docker-compose up -d
  • 7:进去挂载目录data,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站
cd /usr/local/docker/jenkins_docker/data/
rm -f hudson.model.UpdateCenter.xml
vi hudson.model.UpdateCenter.xml

内容如下:(复制进去即可)

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
  </site>
</sites>
  • 8:切换回Jenkins目录:
cd /root/jenkins
  • 9:再次重启Jenkins容器,访问Jenkins(需要等会):
docker-compose restart
  • 10:查看Jenkins登陆的密码:
[root@centos7-jenkins jenkins]# docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
af057174db8b41808bb3ca224eb67f10
  • 11:登陆Jenkins,并安装Jenkins插件:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Jenkins入门配置
安装必备插件⭐
  • 需要安装的插件以及版本(版本可以不按照我们下面的,如果安装插件一直失败就使用我们下面的版本进行下载):
  • 环境:当前我们的Jenkins(版本是:2.359):
    • 1:Git(版本:4.11.3)
    • 2:Git Parameter(版本:0.9.17)
    • 3:Publish Over SSH(版本:1.24)
安装插件(方式一:可能有时会下载失败)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

安装插件(方式二:本地安装⭐)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装Jenkins插件一直失败解决方案⭐
  • 1:如果没有配置Maven的国内镜像源,则要在上面安装Maven的步骤中找到配置Maven的镜像源进行配置,这样Jenkins下载插件的速度就会大大提高。
  • 2:如果已经配置了Maven的国内镜像源,但还是一直下载插件失败:
    • **解决方法一:**有可能是Jenkins版本太低,而我们下载的插件版本过高导致的。可以手动指定Jenkins版本和Jenkins插件版本。
    • 解决方法二:去GitHub上找到目前最新,然后在dockerhub上把Jenkins版本并拉取下来,也就是说使用新版本的Jenkins即可。

解决方法二里面的找最新版本的方法图解如下:⭐

在这里插入图片描述
在这里插入图片描述

Jenkins实战1:构建Freestyle(自由风格)的Jenkins项目(C I 持续集成操作⭐)

项目流程架构图⭐

在这里插入图片描述

配置Jenkins的JDK和Maven
  • 1:把我们之前解压的JDK目录和Maven目录都移动到Jenkins的挂载目录上⭐
    • Jenkins挂载目录:/usr/local/docker/jenkins_docker/data/
    • JDK目录:/usr/local/jdk/
    • Maven目录:/usr/local/maven/
    • **对应同步容器目录:/var/jenkins_home/ **
cd /usr/local/docker/jenkins_docker/data/
mv /usr/local/jdk/ /usr/local/docker/jenkins_docker/data
mv /usr/local/maven/ /usr/local/docker/jenkins_docker/data
  • 2:在Jenkins可视化界面的全局配置中配置JDK和Maven:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

配置Publish over SSH(通知目标服务器插件)
  • 1:在目标服务器(192.168.184.80)上创建一个目录:(由于不想再新建一个Linux服务器,所以就把192.168.184.80作为目标服务器)。
mkdir -p /usr/local/test
  • 2:开始配置Publish over SSH:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 这时我们就有一个新功能。Jenkins(192.168.184.80)可以利用publish over ssh插件来通知目标服务器(192.168.184.80)。注意:目标服务器也可以不使用192.168.184.80地址,可以用另外的服务器,没有强制要求,什么服务器都可以作为目标服务器。
在IDEA构建一个springboot项目
测试项目图

在这里插入图片描述

项目核心接口代码
  • 1:JenkinsController.java
package com.boot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class JenkinsController {
    @ResponseBody
    @GetMapping(path = "/test")
    public String test(){

        return "hello Jenkins";
    }
}
  • 2:application.properties
spring.application.name=jenkins-demo
server.port=8082
第一步:将springboot项目上传到GitLab上(用IDEA插件的方式⭐)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二步:将gitlab上面的项目代码拉取到Jenkins中⭐

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 查看代码是否拉取成功:(可以看到代码已经成功拉取到Jenkins容器内部了)
[root@centos7-jenkins jenkins] docker exec -it jenkins bash
[root@centos7-jenkins Jenkins容器] cd var/jenkins_home/workspace/mytest/
[root@centos7-jenkins Jenkins容器] ls
README.md  mvnw  mvnw.cmd  pom.xml  src
第三步:利用Maven构建项目的jar包⭐
  • 在springboot项目中的pom.xml上配置maven插件:(加入这段代码并上传gitlab)
<build>
<!--        生成的jar包就是mytest.jar-->
        <finalName>mytest</finalName>
        <plugins>
<!--            配置maven插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
        <!--     版本需要指定为你当前springboot版本-->
                <version>2.5.9</version>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
<!--                    指定主类,也就是springboot启动类-->
                    <mainClass>com.boot.JenkinsDemoApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>
</build>
  • 开始构建jar包:
    • Build Steps 的Goals内容如下:
clean package -DskipTests

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 查看是否构建成功,以及构建出来的jar包是否存在:(可以看到jenkins-demo-0.0.1-SNAPSHOT.jar就是我们构建出来的jar包)
[root@centos7-jenkins jenkins]# docker exec -it jenkins bash
[root@centos7-jenkins 容器]# cd var/jenkins_home/workspace/mytest/target/
[root@centos7-jenkins 容器]# ls
classes		   generated-test-sources	    maven-archiver  test-classes
generated-sources  mytest.jar  maven-status
第四步:将构建好的jar包push推送给指定的目标服务器⭐
  • 提示:

    • 1:Transfer Set Source files:
    target/*.jar
    
  • 开始配置远程推送jar包给目标服务器:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 查看我们的目标服务器:

在这里插入图片描述

  • 进入目标服务器的shell窗口,执行命令:(可以看到jar包已经通过ssh远程推送到目标服务器的文件夹上去了)
[root@centos7-jenkins jenkins]# cd /usr/local/test/target/
[root@centos7-jenkins target]# ls
mytest.jar
第五步:利用Dockerfile和推送过来的jar包在目标服务器上生成image从而运行出容器⭐
  • 1:在项目中编写Dockerfile和docker-compose.yml文件,然后上传到gitlab上去:

    • Dockerfile(内容):
    FROM java:8
    COPY mytest.jar /usr/local/
    WORKDIR /usr/local
    CMD java -jar mytest.jar
    
    • docker-compose.yml(内容):
    version: "3.1"
    services:
      mytest:
        build:
          context: ./
          dockerfile: Dockerfile
        image: mytest:v1.0.0
        container_name: mytest
        ports:
          - 8082:8082 #因为我们application.yml配置这个项目是8082端口
    

在这里插入图片描述

  • 2:删除目标服务器一些文件夹:
[root@centos7-jenkins test]# rm -rf /usr/local/test/docker/ /usr/local/test/target/
  • 3:在Jenkins进行配置:

    • Transfer Set Source files:
    target/*.jar docker/*
    
    • Exec command:
    cd /usr/local/test/docker
    mv ../target/*jar ./
    docker-compose down
    docker-compose up -d --build
    docker image prune -f
    

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 4:Jenkins构建完成之后查看镜像和容器:(可以看到mytest:v1.0.0 已经启动。)

    • 查看镜像:
    [root@centos7-jenkins local]# docker images
    REPOSITORY        TAG       IMAGE ID       CREATED         SIZE
    mytest            v1.0.0    db233798a206   2 minutes ago   661MB
    jenkins/jenkins   2.359     616d2581d755   7 days ago      463MB
    
    • 查看构建出来的项目容器实例:
    [root@centos7-jenkins local]# docker ps
    CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS             PORTS                                                                                      NAMES
    04146936e4ec   mytest:v1.0.0           "/bin/sh -c 'java -j…"   3 minutes ago   Up 3 minutes       0.0.0.0:8082->8082/tcp, :::8082->8082/tcp                                                  mytest
    5b69eb0eb387   jenkins/jenkins:2.359   "/usr/bin/tini -- /u…"   24 hours ago    Up About an hour   0.0.0.0:50000->50000/tcp, :::50000->50000/tcp, 0.0.0.0:9200->8080/tcp, :::9200->8080/tcp   jenkins
    
第六步:测试访问这个容器⭐

在这里插入图片描述

Jenkins实战2:构建Freestyle(自由风格)的Jenkins项目(C D 持续交付操作⭐)

  • Jenkins实战2要建立Jenkins实战1的基础上。
  • 必须先完成Jenkins实战1,在Jenkins实战1的基础上在做修改成CD模式。
注意:先完成Jenkins实战1的步骤(⭐)

案例过程:在Jenkins实战1的基础上,通过修改部分内容让CI变成CD。

配置Jenkins根据gitlab的tag(标签)进行构建工程(⭐)

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

新增两个新的tag标签⭐
v1.0.0的tag标签

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

v2.0.0的tag标签

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

开始进行Jenkins参数化构建工程(基于gitlab上的tag⭐)
测试构建v1.0.0的tag⭐

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试构建v2.0.0的tag⭐

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 算法高级篇:归并排序的优化与外部排序

Python 算法高级篇&#xff1a;归并排序的优化与外部排序 引言 1. 归并排序的基本原理2. 归并排序的优化2.1 自底向上的归并排序2.2 最后优化 3. 外部排序4. 性能比较5. 结论 引言 在计算机科学中&#xff0c;排序是一项基本的任务&#xff0c;而归并排序&#xff08; Merge S…

MTK AEE_EXP调试方法及user版本打开方案

一、AEE介绍 AEE (Android Exception Engine)是安卓的一个异常捕获和调试信息生成机制。 手机发生错误(异常重启/卡死)时生成db文件(一种被加密过的二进制文件)用来保存和记录异常发生时候的全部内存信息,经过调试和仿真这些信息,能够追踪到异常的缘由。 二、调试方法…

【C++】Linux下如何查看opencv的版本

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

职业技术认证:《研发效能(DevOps)工程师》——开启职业发展新篇章

在互联网行业中&#xff0c;资质认证可以证明在该领域内的专业能力和知识水平。各种技术水平认证也是层出不穷&#xff0c;而考取具有公信力和权威性的认证是从业者的首选。同时&#xff0c;随着国内企业技术实力的提升和国家对于自主可控的重视程度不断提高&#xff0c;国产证…

buuctf_练[CSCCTF 2019 Qual]FlaskLight

[CSCCTF 2019 Qual]FlaskLight 文章目录 [CSCCTF 2019 Qual]FlaskLight掌握知识解题思路关键paylaod 掌握知识 内置函数的过滤&#xff0c;globals变量的过滤&#xff0c;调用内部变量或函数的OS函数进行命令执行 解题思路 打开题目链接&#xff0c;很明显看标题和内容是fla…

代码随想录算法训练营第三十五天丨 贪心算法part06

738.单调递增的数字 思路 暴力解法 题意很简单&#xff0c;那么首先想的就是暴力解法了【超时】。 贪心算法 题目要求小于等于N的最大单调递增的整数&#xff0c;那么拿一个两位的数字来举例。 例如&#xff1a;98&#xff0c;一旦出现strNum[i - 1] > strNum[i]的情况…

CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。

文章目录 前言SHA-1加密算法介绍关于SHA-1和MD5 SHA-1 加密过程原文处理设置初始值和数据结构定义加密运算原理过程 在python中调用SHA-1 前言 MD5学习MD5加密算法 SHA-1加密算法介绍 SHA-1&#xff08;Secure Hash Algorithm1&#xff0c;安全散列算法1&#xff09;是一种密…

安卓逆向之雷电模拟器中控

一, 雷电模拟器 安装使用 官方地址: https://www.ldmnq.com ,官方论坛 https://www.ldmnq.com/forum/ . 有一个多开管理器,还有就是设置手机的参数比较关键。 二,雷电模拟器开启面具,安装LSP。 设置root 权限。

电脑技巧:Win10飞行模式相关知识介绍

目录 一、飞行模式简介 二、如何开关Windows 10中的飞行模式 方法一&#xff1a;使用硬件开关 方法二&#xff1a;使用Windows 10操作中心 方法三&#xff1a;使用Windows 10设置 三、飞行模式开关被卡住、变灰或不工作时怎么办 什么是 Windows 10 飞行模式? 用户如何打…

【ARM Cortex-M 系列 4 番外篇 -- 常用 benchmark 介绍】

文章目录 1.1 CPU 性能测试 MIPS 计算1.1.1 Cortex-M7 CPI 1.2 benchmark 小节1.3.1 Geekbenck 介绍 1.3 编译参数配置 1.1 CPU 性能测试 MIPS 计算 每秒百万指令数 (MIPS)&#xff1a;在数据压缩测试中&#xff0c;MIPS 每秒测量一次 CPU 执行的低级指令的数量。越高越好&…

系列十八、请描述下bean的生命周期

一、概述 bean的生命周期是指bean从创建到销毁的整个过程。 二、生命周期 bean的生命周期是指bean从创建到销毁的整个过程&#xff0c;大致可以分为如下四个过程&#xff1a; 2.1、实例化 实例化可以通过如下几种方式完成&#xff1a;&#xff08;参考系列十五&#xff09…

【中国知名企业高管团队】系列49:VIVO

今天为您介绍蓝绿两厂的蓝厂——VIVO。这两家公司同源于步步高&#xff0c;两家公司除了名字都是四个字以外&#xff0c;其他方面也实在是太像了&#xff0c;就连核心价值观的前两个词都一样&#xff1a;本分、用户导向。 一、VIVO公司简介 和OPPO一样&#xff0c;VIVO也来源…

springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作

第一步&#xff1a;在mongodb的官网里面创建云服务器 点进去 这是免费的&#xff0c;由于是一个项目只可以创建一个&#xff0c;这里我已经创建好了 用本地的mongodb服务也是可以的 第二步&#xff1a;点击connect,下载连接mongodb的软件&#xff1a;MongoDBCompass 第三步&am…

LVS-keepalived实现高可用

概念&#xff1a; 本章核心&#xff1a; Keepalived为LVS应运而生的高可用服务。LVS的调度无法做高可用&#xff0c;预算keepalived这个软件&#xff0c;实现了调度器的高可用。 但是&#xff1a;Keeplived不是专门为LVS集群服务的&#xff0c;也可以做其他服务器的高可用 LVS…

HFSS笔记——求解器和求解分析

文章目录 1、求解器2、求解类型3、自适应网格剖分4、求解频率选择4.1 求解设置项的含义4.2 扫频类型 1、求解器 自从ANSYS将HFSS收购后&#xff0c;其所有的求解器都集成在一起了&#xff0c;点击Project&#xff0c;会显示所有的求解器类型。 其中&#xff0c; HFSS design&…

三十七、【进阶】验证索引的效率

1、准备工作&#xff1a; 创建一张表&#xff0c;该表中有一千万条数据&#xff0c;名为tb_sku&#xff1b; 2、使用主键查询&#xff1a; select * from tb_stu where id1\G; 3、使用非索引查询&#xff1a; 4、给sn字段创建索引&#xff1a; 在创建过程中&#xff0c;发现…

数据结构时间复杂度(补充)和空间复杂度

Hello&#xff0c;今天事10月27日&#xff0c;距离刚开始写博客已经过去挺久了&#xff0c;我也不知道是什么让我坚持这么久&#xff0c;但是学校的课真的很多&#xff0c;很少有时间多出来再学习&#xff0c;有些科目马上要考试了&#xff0c;我还不知道我呢不能过哈哈哈&…

在docker中创建EMQX 加数据卷

1、从虚拟容器中复制出来文件 docker run --rm emqx/emqx:5.3.0 sh -c cd /opt/emqx && tar -c etc | tar -C $PWD -x 2、将这三个文件夹分别赋予最高权限&#xff0c;也可以777可以755 chmod -R 777 data chmod -R 777 etc chmod -R 777 log 3、创建容器代码 docke…

Linux常用命令——chpasswd命令

在线Linux命令查询工具 chpasswd 批量更新用户口令的工具 补充说明 chpasswd命令是批量更新用户口令的工具&#xff0c;是把一个文件内容重新定向添加到/etc/shadow中。 语法 chpasswd(选项)选项 -e&#xff1a;输入的密码是加密后的密文&#xff1b; -h&#xff1a;显示…

[Docker]三.Docker 部署nginx,以及映射端口,挂载数据卷

一.Docker 部署 Nginx 以及端口映射 Docker 部署 Nginx,首先需要下载nginx镜像,然后启动这个镜像,就运行了一个nginx的容器了 1.下载 nginx 镜像并启动容器 #查看是否存在nginx镜像:发现没有nginx镜像 [rootlocalhost zph]# docker images | grep nginx#下载nginx镜像 [rootl…