使用Dockerfile脚本创建镜像
1、使用Dockerfile脚本创建镜像
(1)创建目录
mkdir -p /usr/local/dockerjdk8
(2)下载
下载jdk-8u171-linux-x64.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录
mv jdk-8u171-linux-x64.tar.gz /usr/local/dockerjdk8/
(3)创建文件Dockerfile
切换到dockerjdk8目录
cd /usr/local/dockerjdk8/
vi Dockerfile 注意:文件名是固定的
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER xzy
#切换工作目录
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
(4)执行命令构建镜像
docker build -t='dockerjdk8' .
注意后边的空格和点,不要省略
(5)查看镜像是否建立完成
docker images
(6)创建容器
docker run -it jdk1.8 /bin/bash
ctrl+shift+a+d 退出容器 会进入到里面
查看容器目录:cd local/java/jdk1.8.0_171
练习:
mkdir /usr/local/eureka-package
FROM dockerjdk8
VOLUME /tmp
ADD app.jar /usr/local/
ENTRYPOINT ["java","-jar","/usr/local/app.jar"]
2、私有仓库搭建与配置
(1) 拉取私有仓库镜像(此步略)
docker pull registry
(2) 启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
(3) 打开浏览器 输入地址
http://192.168.184.135:5000/v2/_catalog
看到 {“repositories”:[]} 表示私有仓库搭建成功并且内容为空
(4) 修改daemon.json
用于让 docker信任私有仓库地址
vi /etc/docker/daemon.json
添加以下内容,保存退出。
"insecure-registries":["192.168.184.135:5000"]
我的还需要配置这个参数
# vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled --insecure-registry 192.168.137.17:5000'
(5) 重启docker 服务
systemctl restart docker
3、镜像上传至私有仓库
(1) 标记此镜像为私有仓库镜像
192.168.192.128:5000:必须是ip:端口号标志push到哪里
docker tag jdk1.8 192.168.192.128:5000/jdk1.8
(2) 上传标记的镜像
docker push 192.168.192.128:5000/jdk1.8
(3) 刷新页面查看
{"repositories":["jdk1.8"]}
4、DockerMaven插件
通过Maven插件自动部署。
(1) 修改docker配置
修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
(2) 刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
docker start registry
(3) 在tensquare_eureka工程pom.xml 增加配置
<build>
<finalName>app</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.184.135:5000/${project.artifactId}:${project.version}
</imageName>
<baseImage>myjdk</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>
<!--这是docker容器的对外端口 就是将jar放到那个容器中 前提是docker 服务器已经
将docker 容器的端口开放 其中2375 就是容器的 端口-->
<dockerHost>http://192.168.184.135:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
------------------------------------------测试已成功-------------------------------------------
<build>
<!--镜像名字-->
<finalName>app</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>
<!--这个地方如果随便写是可以放到docker中的但是由于
push 根据标记去找地址所以找不到地址-->
<imageName>192.168.2.157:5000/${project.artifactId}:${project.version}
</imageName>
<baseImage>jdk8</baseImage>
<entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<!--将targe目录下的某个jar提交到那个地方-->
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!--这是docker容器的对外端口 就是将jar放到那个容器中 前提是docker 服务器已经
将docker 容器的端口开放 其中2375 就是容器的 端口-->
<dockerHost>http://192.168.2.157:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
以上配置会自动生成Dockerfile
FROM jdk1.8
ADD app.jar /
ENTRYPOINT ["java","‐jar","/app.jar"]
(4) 打包和上传镜像
在windows的命令提示符下,进入tensquare_eureka工程所在的目录,输入以下命令,进行打包和上传镜像
mvn clean package docker:build -DpushImage
浏览器访问 http://192.168.184.135:5000/v2/_catalog ,显示
{"repositories":["jdk1.8","tensquare_eureka"]}
(5) 进入宿主机 , 查看镜像
docker images
(6) 浏览器访问eureka
http://192.168.192.128:6868/
5、Gogs安装与配置
(1) 下载镜像
docker pull gogs/gogs
(2) 创建系统用户git,并设置密码
adduser git
passwd git
切换用户
su git
su root
(3) 上传gogs
mkdir /usr/local/gogs-package
mv gogs_0.11.43_linux_amd64.tar.gz /usr/local/gogs-package
解压
tar -zxvf gogs_0.11.43_linux_amd64.tar.gz
(4) 启动gogs
cd gogs
./gogs web
(5) 配置
假设我的centos虚拟机IP为192.168.184.135 完成以下步骤
在地址栏输入http://192.168.184.135:3000 会进入首次运行安装程序页面,我们
可以选择一种数据库作为gogs数据的存储,最简单的是选择SQLite3。如果对于规模较大
的公司,可以选择MySQL
6、Jenkins安装
6.1、JDK安装(此步略)
(1) 将jdk-8u171-linux-x64.rpm上传至服务器(虚拟机)
(2) 执行安装命令
rpm -ivh jdk-8u171-linux-x64.rpm
RPM方式安装JDK,其根目录为:/usr/java/jdk1.8.0_171t
6.2 安装Maven与本地仓库
(1) 将Maven压缩包上传至服务器(虚拟机)
(2) 解压
tar -zxvf apache‐maven-3.3.9-bin.tar.gz
(3) 移动目录
mv apache-maven-3.3.9 /usr/local/maven
(4) 配置本地仓库目录
编辑setting.xml配置文件 vi /usr/local/maven/conf/settings.xml ,配置本地仓库目录,内容如下
<localRepository>/usr/local/repository</localRepository>
(5) 上传本地仓库
将开发环境的本地仓库上传至服务器(虚拟机)并移动到/usr/local/repository
mv reponsitory_boot /usr/local/repository
是为了以后在打包的时候不必重新下载依赖包,缩短打包的时间。
(6) 编辑settings.xml配置文件
vi /usr/local/maven/conf/settings.xml
<pluginGroups>
<pluginGroup>com.spotify</pluginGroup>
</pluginGroups>
6.2、Jenkins安装与启动
(1) 下载jenkins 或直接从资料上传
wget https://pkg.jenkins.io/redhat/jenkins-2.83-1.1.noarch.rpm
(2) 安装jenkins
mkdir -p /usr/local/jenkins-package
mv jenkins-2.83-1.1.noarch.rpm /usr/local/jenkins-package/
cd /usr/local/jenkins-package
安装
rpm -ivh jenkins-2.83-1.1.noarch.rpm
(3) 配置jenkins
vi /etc/sysconfig/jenkins
修改用户和端口
JENKINS_USER="root"
JENKINS_PORT="8888"
(4) 启动服务
systemctl start jenkins
service jenkins start
(5) 访问链接
从 /var/lib/jenkins/secrets/initialAdminPassword 中获取初始密码串
(6) Jenkins插件安装
安装Maven插件 、 安装Git插件
6.4 全局工具配置
配置jdk路径
/usr/java/jdk1.8.0_171-amd64/
配置maven路径
/usr/local/maven
上一篇: CentOS7下安装部署superset
下一篇: .NET中的许可证框架
推荐阅读
-
docker Dockerfile创建docker镜像
-
Dockerfile创建Docker镜像
-
使用Dockerfile脚本创建镜像
-
在linux上使用shell .sh脚本删除指定目录中指定某一时间段之前创建的文件及文件夹的脚本
-
在Bash脚本中创建和使用数组方法总结
-
使用Dockerfile创建镜像(JDK镜像,spring-boot-web镜像)
-
Docker使用Dockerfile创建Centos(tomcat+jdk)镜像
-
docker使用dockerfile创建镜像
-
Docker入门实战(二)----使用Dockerfile创建自己的镜像
-
Docker 使用Dockerfile创建镜像