Docker--Jenkins(一键部署)

dockerfile创建镜像JDK

# mkdir -p /usr/local/dockerjdk8   创建文件夹 ( -p 级联创建)
# 将jdk文件包上传到刚刚创建的dockerjdk8目录并解压
# vi Dockerfile   注意:文件名是固定的     此文件必须与上传的jdk文件同一目录

#依赖镜像名称和ID ( jdk依赖于contos7   contos7也叫基础镜像)
FROM centos:7           
#指定镜像创建者信息 
MAINTAINER lcchina        
#切换工作目录 
WORKDIR /usr 
RUN mkdir  /usr/local/java 
#ADD 是相对路径jar,把java添加到容器中 
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/ 

#配置java环境变量 
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171 
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='dockerjdk8' .       名字可以随意起''可以省略,名字后面空格. 注意后边的空格和点,不要省略

查看镜像是否建立完成

docker images

创建容器

docker run -it jdk1.8 /bin/bash    

将服务通过dockerfile打成镜像

创建目录 mkdir /usr/local/server
并将打好的jar包上传到创建好的server目录下
上传方式一:在server目录 直接rz上传 (推荐)
上传方式二: Alt+P put G:\nacosspring\nacos_server\target\myapp.jar
将jar剪切到server目录下 mv myapp.jar /usr/local/server/

创建 vi Dockerfile

#  from是此时要打成镜像依赖于jdk镜像
FROM dockerjdk8  
#  挂载目录
VOLUME /tmp   
#  add移动到指定目录并解压      
ADD myapp.jar /usr/local/server/   
#  执行 相当于java -java app.jar
ENTRYPOINT ["java","-jar","/usr/local/server/myapp.jar"]  

执行命令构建镜像

docker build -t=myapp .       名字可以随意起''可以省略,名字后面空格. 注意后边的空格和点,不要省略

查询看镜像

docker images

镜像创建容器

docker run -di --name myapp -p 8012:8012 myapp

[私有仓库搭建与配置]

私有仓库说明图
(1)拉取docker私有仓库镜像
docker pull registry
(2)创建私有仓库容器并启动
docker run -di --name=registry -p 5000:5000 registry
docker start 容器id
(3)打浏览器访问地址
http://192.168.233.137:5000/v2/_catalog
(4)添加信认在开发服务器中添加私有仓库docker地址
vi /etc/docker/daemon.json
(5)添加以下内容,保存退出。(开发服务中添加公有服务中的docker地址)此配置是配置两个docker中的私有仓库
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.233.137:5000"]
}
(6)重启docker服务
systemctl restart docker  或   sevice docker restart

[镜像上传至私有仓库 A服务上传到B服务]

(1)将A服务中的镜像先打标记
docker tag dockerjdk8 192.168.233.137:5000/dockerjdk8
(2) 上传标记的镜像
docker push 192.168.233.137:5000/dockerjdk8 (上传)
docker pull 192.168.233.137:5000/dockerjdk8 (下载)

DockerMaven插件(重点)

说明:通过maven插件自动部署到私有仓库(如果不使用maven插件其将jar包通过dockerfile转成镜像并打成标记后才能上传并中间还有一台docker服务A--B.使用maven插件后直接打成镜像上传到私有仓库.中间不需要中转docker服务)

(1)修改宿主机的docker配置,让其可以远程访问(此配置让外部访问信认)
vi /lib/systemd/system/docker.service
#其中ExecStart=后添加配置
#说明0.0.0.0表示任意地址都可以访问但必须指定端口(端口自定义)
-H tcp://0.0.0.0:0312 -H unix:///var/run/docker.sock
(2) 刷新配置,重启服务
systemctl daemon-reload  (重新加载)
systemctl restart docker    (重启docker)
docker start registry   (重启私有仓库容器)
#如果不想麻烦 直接重启服务器即可
reboot (重启服务器)
(3) 在服务中工程pom.xml 增加配置

    app
    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
        
        
            com.spotify
            docker-maven-plugin
            0.4.13
            
                
                192.168.233.136:5000/${project.artifactId}:${project.version}
                
              
                dockerjdk8
                ["java","-jar","/${project.build.finalName}.jar"]
                
                    
                        /
                        ${project.build.directory}
                        ${project.build.finalName}.jar
                    
                
                
                http://192.168.233.136:0312
            
        
    

不通过私有库直接推送到docke中
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            

            
                com.spotify
                docker-maven-plugin
                1.2.0

                
                    
                    ${project.artifactId}:${project.version}

                    
                    java

                    
                    /ROOT
                    ["java", "-version"]
                    ["java", "-jar", "${project.build.finalName}.jar"]

                    

                    
                    http://192.168.4.182:0312

                    
                    
                        
                            /ROOT
                            
                            ${project.build.directory}
                            
                            ${project.build.finalName}.jar
                        
                    
                

                
                    
                        build-image
                        package
                        
                            build
                        
                    
                

            
        
    
IDEA docker 插件使用
添加docker插件
查看容器状态
配置信息
配置
启动
启动
查看
查看启动状态
点击IDEA右侧的M 选择服务执行以下命令
mvn clean package docker:build  -DpushImage
启动上传后的容器
docker run -di --name eureka -p 8001:8001  my_eureka:1.0-SNAPSHOT

Gogs安装与配置

(1) 下载镜像 (本地git服务器)
docker pull gogs/gogs
(2)启动容器
docker run -di --name gogs -p 3000:3000  gogs/gogs
(3) 配置
假设我的centos虚拟机IP为192.168.233.136 完成以下步骤​ 在地址栏输入[http://192.168.233.136:3000](http://192.168.233.136:3000) 会进入首次运行安装程序页面,我们可以选择一种数据库作为gogs数据的存储,最简单的是选择SQLite3。如果对于规模较大的公司,可以选择MySQL

首页只需修改红线两处即可

注册页面

点击加号创建仓库

创建仓库

创建成功后的仓库页面

IDEA选择git方式

选择git

打开Settings 找到git 选择本地安装git目录

添加git地址

将gogs地址添加

选择Add 添加本地git

上传到git服务器

添加注解并上传

上传并push

点击push

输入刚才创建的git账号与密码

刷新页面看到上传的服务

Jenkins安装

Jenkins架构图

配置maven插件与仓库

(1) 将jdk-8u171-linux-x64.rpm上传至服务器(虚拟机)
执行安装命令: rpm -ivh jdk-8u171-linux-x64.rpm
(2)安装Maven与本地仓库
# 解压插件
tar -zxvf apache‐maven-3.3.9-bin.tar.gz
(3) 上传maven仓库
ALT+P
push -f  要上传的仓库目录
(4) 配置本地仓库目录(settings.xml)
编辑setting.xml配置文件 vi /usr/local/maven/conf/settings.xml ,配置本地仓库目录,内容如下
/usr/local/repository
(5)再次编辑settings.xml配置文件
vi /usr/local/maven/conf/settings.xml

     
    com.spotify  (添加些内容)   


Jenkins安装与启动

(1)上传jenkins安装包并安装
创建目录:  mkdir  mkdir -p /usr/local/jenkins
安装命令:  rpm -ivh jenkins-2.83-1.1.noarch.rpm
(2) 配置jenkins
vi /etc/sysconfig/jenkins
修改配置jenkins内容
(3) 启动服务
systemctl start jenkins  或者 service jenkins start
启动后复制首页的密文进行解密
复制密文
cat /var/lib/jenkins/secrets/initialAdminPassword
进行解密

点击左侧安装插件

插件就gitsvn有用

注册账号

点击系统管理

点击管理插件

可选插件点击maven直接安装

点击全局工具配置

配置JDK环境变量

配置maven

点击首页新建

添加项目点击OK

勾选git并添加git地址

指定POM并添加加maevn命令并且保存

刷新页面点击右侧图标执行

发布说明

点击红框里的按钮查看执行代码

点击控制台输出

docker中安装jenkins

拉取镜像
docker pull jenkins/jenkins:lts

你可能感兴趣的:(Docker--Jenkins(一键部署))