zoukankan      html  css  js  c++  java
  • docker基础学习三

    一、Dockerfile学习

    由一系列的参数和命令构成的脚本。这些命令应用于基础镜像并最终创建一个新的镜像。基础镜像就是操作系统级别的镜像。

    • 常用命令
    FROM image_name:tag 定义了使用哪个基础镜像启动构建流程
    MAINTAINER user_name 声明镜像的创建者
    ENV key value 设置环境变量 (可以写多条)
    RUN command 是Dockerfile的核心部分(可以写多条)
    ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
    COPY source_dir/file dest_dir/file 和ADD相似,但是如果有压缩文件并不能解压
    WORKDIR path_dir 设置工作目录
    • 使用脚本创建镜像
    //创建目录
    mkdir –p /docker/dockerjdk8
    
    //通过ftp上传一个jdk到dockerjdk8目录里面
    
    //创建一个名为Dockerfile文件
    vi Dockerfile
    
    //配置Dockerfile文件
    #依赖镜像名称和ID
    FROM centos:7
    #指定镜像创建者信息
    MAINTAINER YANGK
    #切换工作目录
    WORKDIR /docker
    RUN mkdir  /docker/java
    #ADD 是相对路径jar,把java添加到容器中
    ADD jdk-8u131-linux-x64.tar.gz /docker/java
    
    #配置java环境变量,如果不知道jdk解压之后的命令,可以在宿主机解压看看
    ENV JAVA_HOME /docker/java/jdk1.8.0_131
    ENV JRE_HOME $JAVA_HOME/jre
    ENV CLASSPATH  $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
    ENV PATH $JAVA_HOME/bin:$PATH
    

    在这里插入图片描述

    //执行命令构建镜像
    docker build -t='jdk1.8' .
    -t:指定镜像名称
    .指定Dockerfile的文件夹,当前目录就有,所以这个点就指代当前目录
    
    //查看镜像是否创建成功
    docker images
    

    在这里插入图片描述

    在这里插入图片描述

    二、构建私有仓库

    • 搭建私有仓库
    //搜索镜像
    docker search registry
    
    //拉取镜像
    docker pull registry
    
    //启动私有仓库容器
    docker run -di --name=registry -p 5000:5000 registry
    

    查看私有仓库是否搭建成功,打开浏览器访问http://centosIP:5000/v2/_catalog 看到{"repositories":[]}表示搭建成功
    在这里插入图片描述
    修改daemon.json,让docker信任私有仓库地址

    //修改daemon.json
    vi /etc/docker/daemon.json
    
    //增加如下内容
    "insecure-registries":["centosIP:5000"]
    
    //重启docker服务
    systemctl restart docker
    

    在这里插入图片描述

    • 镜像上传至私有仓库
    //标记此镜像为私有仓库的镜像
    docker tag  jdk1.8 centosIP:5000/jdk1.8
    
    //再次启动私服容器
    docker start registry
    
    上传标记的镜像
    docker push centosIP:5000/jdk1.8
    

    在这里插入图片描述

    再次访问仓库
    在这里插入图片描述

    三、通过Maven插件自动部署

    • 修改宿主机的docker配置,让其可以远程访问
    //让docker可以远程访问,docker默认关闭远程操作。
    vi /lib/systemd/system/docker.service
    
    其中在ExecStart=后添加配置-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
    

    在这里插入图片描述

    //刷新配置,重启服务
    systemctl daemon-reload 
    systemctl restart docker  
    docker start registry 
    
    • 创建一个Maven项目
    //配置maven插件 
    <build>
            <finalName>dockerDemo</finalName>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin -->
                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>0.4.13</version>
                    <configuration>
                        <!-- 生成的镜像名称 -->
                        <imageName>192.168.100.128:5000/${project.artifactId}:${project.version}</imageName>
                        <!-- 基础镜像  相当于FROM jdk1.8-->
                        <baseImage>jdk1.8</baseImage>
                        <!-- 入口点 相当于ENTRYPOINT ["java","-jar","/dockerDemo.jar"]-->
                        <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <!-- 创建路径,target路径-->
                                <directory>${project.build.directory}</directory>
                                <!-- dockerDemo.jar  相当于ADD dockerDemo.jar /-->
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                        <dockerHost>http://192.168.100.128:2375</dockerHost>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

    在这里插入图片描述

    • 部署到docker服务和私服上
    //进入项目工程目录下,将项目安装到本地仓库
    mvn install
    
    //输入以下命令,进行打包和上传镜像
    mvn docker:build -DpushImage
    
    

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

    • 启动容器
      在这里插入图片描述
      在这里插入图片描述
    docker run -di --name=demo -p 9002:8080 192.168.100.128:5000/demo:0.0.1-SNAPSHOT
    
    

      创建的是sprinboot项目默认端口是8080,

    在这里插入图片描述

    四、Jenkins学习

    • Jenkins是什么
      Jenkins是一个持续集成的工具,能从代码仓库中获取并产生代码更新列表并输出到编译输出信息。生成JUnit/TestNG测试报告,也就是用以图表等形式提供详细的测试报表功能。支持第三方插件,使得 Jenkins 变得越来越强大
    • 安装配置登录,需要JDK支持
      下载地址:
    //安装
    rpm -ivh jenkins-2.183-1.1.noarch.rpm
    
    //配置修改用户和端口
    
    vi /etc/sysconfig/jenkins
    JENKINS_USER="root" 
    JENKINS_PORT="9909"
    
    

    在这里插入图片描述

    //启动服务,如果报错可以根据提示找到错误原因
    systemctl start jenkins
    //重启服务
    systemctl daemon-reload
    //查看启动状态
    systemctl status jenkins
    
    //获取初始密码
    cat /var/lib/jenkins/secrets/initialAdminPassword
    
    

    启动的时候失败,通过 systemctl status jenkins。看到是没有找到JDK(这个JDK我默然安装不是/usr/bin/java)

    在这里插入图片描述

    修改 vi /etc/init.d/jenkins,增加JDK路径
    在这里插入图片描述

    获取登录密码
    在这里插入图片描述

    启动等成成功出现这个页面,原因就是在插件管理器中检查了更新站点 ,使用了https,将它改成http就行了
    在这里插入图片描述

    //通过这个命令找到更新文件的路径
    find / -name "hudson.model.UpdateCenter.xml"
    //修改
    vi /var/lib/jenkins/hudson.model.UpdateCenter.xml
    
    

    在这里插入图片描述

    重启Jenkins,就可以下载插件了
    在这里插入图片描述

    • 安装插件
      上面哪一步之后就已经默认安装了一些插件,比如git之类的。下面安装一个Maven插件
      在这里插入图片描述

    选中之后直接点击下方的直接安装就可以了

    • 全局工具配置
      jenkins能够持续集成其实是调用maven插件,执行maven命令来达到这种集成效果
    //解压
    tar -zxvf apache-maven-3.6.1-bin.tar.gz 
    
    //配置本地仓库
    vi /yangk/apache-maven-3.6.1/conf/settings.xml
    
    

    在这里插入图片描述

     - 工具配置
    

    找到jenkins的全局工具配置
    在这里插入图片描述

     配置JDK,GIT,Mvane
    在这里插入图片描述

    Git之前已经默认安装在Jenkins了,所以用默认的就可以了
    在这里插入图片描述
    在这里插入图片描述

    • 任务的创建与执行
      在执行这一步之前,我将一个普通的项目上传到git服务器里面了。
      • 新建项目
        在这里插入图片描述

    填写项目在Git的地址
    在这里插入图片描述

    找到这个项目pom.xml的位置,提前输入好项目编译启动命令,然后保存就可以了。
    在这里插入图片描述

    点击红框地方就可以启动这个任务了,我这边出现红色球和阴雨天的标识是因为我启动失败了,git的账号和密码没有配置
    在这里插入图片描述
    在这里插入图片描述

    可以在左边看到这个项目的进度,点击进度条可以进去看到详细进度。如果全部配置成功之后就可以在docker看到完成的镜像了。也是需要在pom里面提前配置好的。
    在这里插入图片描述

  • 相关阅读:
    vivo 全球商城:从 0 到 1 代销业务的融合之路
    mysql 批量kill掉运行中的进程id
    启用php-fpm状态功能 --php-fpm调优也有
    PHP-php-fpm配置优化
    Linux-cpu分析-vmstat
    关于overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷等等)
    curl 发送POST请求
    python redis-rdb工具 分析redis工具
    tupdump
    spring cloud gateway security oauth2
  • 原文地址:https://www.cnblogs.com/yangk1996/p/12657719.html
Copyright © 2011-2022 走看看