使用Dockerfile脚本创建jdk1.8镜像

新建jdk目录:(-p表示需要父目录,不然就会出错)

mkdir -p /usr/local/dockerjdk1.

将jdk的压缩文件复制到上面的路径

Linux上使用vim在上面创建的目录中创建Dockerfile文件,这里文件内容如下

#依赖镜像名称和ID
FROM centos:
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
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..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创建镜像(. 是 Dockerfile 所在的路径(当前目录))

docker build -t='jdk1.8' .

最后创建容器

docker run -it --name=myjdk8 jdk1. /bin/bash

注意这里使用Dockerfile创建镜像的好处就是可以提供一致的开发环境,方便运维的无缝移植


docker创建私有仓库

分别运行下面的命令创建

docker pull registry
docker run -di --name=registry -p : registry

打开浏览器直接访问http://宿主机的IP:5000/v2/_catalog就可以看到对应的内容

修改宿主机的内容

vim /etc/docker/daemon.json

修改内容如下,添加一行   "insecure-registries":["192.168.217.131:5000"]

此步用于让 docker信任私有仓库地址

{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.217.131:5000"]
}

镜像上传至私有仓库

标记镜像是私有仓库的镜像

docker tag jdk1. 192.168.217.131:/jdk1.

启动仓库上传镜像,“/”之前的是 仓库的名字,后面是对应的镜像

docker start registry
docker push 192.168.217.131:/jdk1.

通过maven插件实现自动部署

修改宿主机的设置

vim  /lib/systemd/system/docker.service

在ExecStart后面添加下面内容(docker 开启2375端口,提供外部访问docker)

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

刷新配置重启服务

systemctl daemon‐reload 
systemctl restart docker 
docker start registry

在工程的pom文件中加入下面的插件设置

<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>192.168.217.131:5000/${project.artifactId}:${project.version}</imageName>
<baseImage>jdk1.8</baseImage>
<entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://192.168.217.131:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>

上面的配置会自己生成下面的Dockerfile的内容

FROM jdk1. 
ADD app.jar / 
ENTRYPOINT ["java","‐jar","/app.jar"]

在对应工程的主目录下使用maven命令,打包镜像并且上传

mvn clean package docker:build  ‐DpushImage

这时候刷新http://192.168.217.131:5000/v2/_catalog就会出现json数据中多了一个镜像。

使用docker images查看镜像就会发现多了个镜像,这时候创建对应的容器实现访问对应的接口


搭建Git服务

Gogs: 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务

docker pull gogs/gogs
docker run ‐d ‐‐name=gogs ‐p : ‐p : ‐v /var/gogsdata:/data  gogs/gogs

docker 中-v表示的是挂载,将gogs的数据文件挂载到前面的文件夹。

访问3000端口就能看到安装界面,安装对应的gogs,IP是宿主机的IP,端口号是3000,内置数据库,如果自己的项目很大就使用MySQL,不大就是用SQLite就好了,最后注册进入

创建仓库,为了简单就设置了公有的

仓库地址

配置IDEA中的Git实现Git服务

在vcs中选择菜单VCS  --> Enable Version Control Integration

Git-->remotes添加Git服务的地址

最后想Git添加工程

Git-->add

Git-->commit

Git-->push


jenkins实现持续集成

这里直接将Jenkins安装在宿主机上

下载安装

rpm -ivh jenkins-2.164.-1.1.noarch.rpm 

修改配置

vi /etc/sysconfig/jenkins

设置端口号和用户

JENKINS_USER="root"
JENKINS_PORT=""

最后启动Jenkins,访问对应的8888端口

登录的初始密码在/var/lib/jenkins/secrets/initialAdminPassword文件中,使用cat命令查看

cat /var/lib/jenkins/secrets/initialAdminPassword

选择安装的插件,这里需要安装maven integration和Git插件

创建用户

还需要安装本地maven,将下载的maven压缩包解压到usr/local/maven目录下面,,将本机使用的仓库复制一份到宿主机上,存放在/usr/local/repository中

设置maven的settings.xml 文件,设置对应的本地仓库地址(/usr/local/repository)

配置初始的MAVEN_HOME和JAVA_HOME

创建任务

添加源码(项目)位置(上面传到gogs上面的项目地址)

添加pom.xml文件位置还有对应的maven命令(pom文件需要注意要是想要制作模块的pom文件)

最后执行程序就可以使用docker images查看创建好的镜像。再创建对应的容器就可以直接使用了

docker制作镜像的更多相关文章

  1. docker制作镜像步骤

    一.查看宿主机下是否有符合需求的docker镜像 操作命令如下: [root@server4 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZ ...

  2. docker中镜像的作用

    镜像原理镜像 镜像到底是什么?镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件.1.Uni ...

  3. 中标麒麟龙芯平台--docker基础镜像制作

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 的出现为开发人员和运维人员带来了极大的便利.Docker在X86下常见的发行版Linux如Ub ...

  4. Docker系列06—基于容器制作镜像并上传到Docker Registry

    本文收录在容器技术学习系列文章总目录 1.制作镜像 1.1 镜像的生成途径 基于容器制作 dockerfile,docker build 本篇主要详细讲解基于容器制作镜像:基于dockerfile 制 ...

  5. Docker学习笔记之二:制作镜像并PUSH

    Pull 如果是Public的(docker官方仓库和加速器) 直接 docker pull ubuntu:16.04 即可 若是私有的 首先登陆 docker login 仓库Host 之后 doc ...

  6. docker利用Dockerfile来制作镜像

    在前面的例子(docker tomcat镜像制作)中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一 种文件或脚本,我 ...

  7. docker tomcat镜像制作

    推荐使用dockerfile(本文直接拉取tomcat需要进入容器自行安装vim):docker利用Dockerfile来制作镜像 1.查找Docker Hub上的tomcat镜像 [root@loc ...

  8. docker制作自己的镜像并上传dockerhub

    1.首先注册自己的dockerhub账号,注册地址:https://hub.docker.com 2.在linux服务器登录自己的账号:docker login --username=qiaoyeye ...

  9. WIN7安装Docker Toolbox、制作镜像并发到阿里云

    一.安装Docker Toolbox,并配置国内源加速 WIndows7不支持Hyper-v,所以只能采用Docker Toolbox的方式使用Docker.传送门:http://mirrors.al ...

随机推荐

  1. java中抽象类是否可以继承实体类?

    一道java 常见面试题,网上找到的几乎每个 java 面试笔试题大全或集锦里都能找到这道题. 题目如下:问: 抽象类是否可继承实体类 (concrete class) 答: 抽象类是可以继承实体类, ...

  2. golang初识 - install go on ubuntu

    WSL: Ubuntu 18.04 1. install go (1) unzip sudo mkdir -p /usr/local/go sudo tar zxvf go1.12.4.linux-a ...

  3. 接口测试总结分享(http与rpc)

    接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等. 一.了 ...

  4. mysql 多行(GROUP_CONCAT)和多列(CONCAT)的合并函数

    1,多行合并:把查询的一行或者多行进行合并. SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskey=cc.id ...

  5. Android 开发 图片网络缓存加载框架Fresco

    简介 Fresco是一个在Android应用程序中显示图像的强大系统. Fresco负责图像的加载和显示.它将从网络.本地存储或本地资源加载图像,图像加载完成前会显示一个占位图片.它有两个级别的缓存: ...

  6. Redis单机版分布式锁实现

    转载自:https://www.cnblogs.com/linjiqin/p/8003838.html Redis分布式锁的正确实现方式 前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基 ...

  7. Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class

    Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdb ...

  8. 73.纯 CSS 创作一只卡通狐狸

    原文地址:https://segmentfault.com/a/1190000015566332 学习效果地址:https://scrimba.com/c/cz6EzdSd 感想:过渡效果,圆角,定位 ...

  9. signalR客户端调用服务端方法失败

    现象: 在VS中修改集线器代码后,重新生成解决方案,客户端js调用服务端方法提示undefined. 检查后台代码未发现错误. 检查js代码未发现错误(方法名称符合小驼峰规范). 解决方法: 先清理解 ...

  10. 一文读懂PRBS定义、生成办法、作用

    对于眼图测试.误码率和抖动容限测试,最常用的测试码是PRBS,主要有PRBS7.PRBS15.PRBS23和PRBS31.本文主要解释了PRBS的定义,生成方法以及简单应用. PRBS定义 二进制序列 ...