1 创建JDK1.8镜像
步骤:
(1)创建目录
mkdir -p /usr/local/dockerjdk8
(2)下载jdk-8u171-linux-x64.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录
(3)在/usr/local/dockerjdk8目录创建文件Dockerfile,建议通过xftp传过来
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ADMIN
#切换工作目录
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='jdk1.8' .
注意后边的空格和点,不要省略
(5)查看镜像是否建立完成
docker images
(6)创建容器
docker run -di --name=jdk1.8 jdk1.8
2 Docker私有仓库
2.1 私有仓库搭建与配置
(1)拉取私有仓库镜像(此步省略)
docker pull registry
(2)启动私有仓库容器
docker run -di --name=registry ‐p 5000:5000 registry
(3)打开浏览器 输入地址http://192.168.136.130:5000/v2/_catalog看
到 {"repositories":[]} 表示私有仓库搭建成功并且内容为空
(4)修改daemon.json
vi /etc/docker/daemon.json
添加以下内容,保存退出。
{"insecure‐registries":["192.168.184.135:5000"]}
此步用于让 docker信任私有仓库地址
(5)重启docker 服务
systemctl restart docker
2.3 使用DockerMaven插件镜像上传至私有仓库
Maven插件自动部署步骤:
(1)修改宿主机的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
(3)在tensquare_config工程pom.xml 增加配置 (已制作tensquare_config镜像为例)
<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.136.130: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.136.130:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
192.168.136.130是我的虚拟机的ip地址,5000端口是registry的,2375是宿主机向外暴露的
(4) 在terminal窗口的G:\Projects\tensquare_parent\tensquare_config的这个路径,进行自动打包和上传到私有仓库
命令:mvn clean package docker:build -DpushImage
浏览器访问 http://192.168.136.130:5000/v2/_catalog ,输出
{"repositories":["tensquare_config"]}
(6)进入宿主机 , 查看镜像
docker images
输出如上内容,表示tensquare_config微服务已经做成镜像
(7) 启动容器:docker run -d --name=tensquare_config -p 12000:12000 192.168.136.130:5000/tensquare_config:0.0.1-SNAPSHOT
- 挂载日志
docker run -dit --name jl-boot -p 8090:8090 -v /data/java/logs:/data/java/logs --restart=always 106.54.238.192:5000/jl-boot:0.0.1-SNAPSHOT
logging:
file: /data/java/logs/jl-boot.log
level:
root: info
org.springframework.web: info
cn.jl666.jlboot: debug