创建Dockerfile文件
此处的参数说明:
FROM openjdk:8-jdk-alpine 基与jdk1.8
VOLUME /tmp 挂载容器的位置
ADD kitty-generator-1.0.0.jar app.jar 宿主机器的jar文件 移动到 容器的jar文件
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 容器执行的命令
EXPOSE 9000 爆漏端口 下面docker run -p 就不需要使用了,
EXPOSE 9092 写多个就会暴露多个端口
若要执行调优内存:加参数如下
2:POM.xml配置 加入docker:build插件
<artifactId>kitty-generator</artifactId> 此处和下面${project.artifactId} 对应
<version>${project.version}</version>
<packaging>jar</packaging> 此处改为jar包方式
<properties>
*****
<docker.image.prefix>kitty</docker.image.prefix> 此处和下面${docker.image.prefix} 对应
</properties>
#下面为jar方式.
<plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- Docker maven plugin --><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.0.0</version><configuration><imageName>${docker.image.prefix}/${project.artifactId}</imageName><dockerDirectory>src/main/docker</dockerDirectory><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin></plugins>
在父模块打包
mvn clean install package -Dmaven.test.skip
在子模块执行生成镜像
mvn docker:build -Dmaven.test.skip
启动镜像
docker run -itd -p 9000:9000 -v /data/generator/:/data kitty/kitty-generator
-it 可以交互进入容器
-d 后台运行
-p 端口映射,若项目有多个端口, -p 9000:9000 -p 9092:9092 写多个即可
-v 挂载文件 宿主/data/generator/ 不存在会自动创建 容器/data会自动创建
挂载文件配置
* 注意下方/data/ 红色字体
-v /data/generator/:/data 这的/data 表示容器的日志 将会在宿主机器生成/data/generator/kitty-generator.log文件
<?xml version="1.0" encoding="UTF-8"?> <configuration><!-- ch.qos.logback.core.ConsoleAppender 控制台输出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern></encoder></appender><!-- ch.qos.logback.core.rolling.RollingFileAppender 文件日志输出 --><appender name="baselog" class="ch.qos.logback.core.rolling.RollingFileAppender"><File>/data/kitty-generator.log</File><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>log/base.%d.%i.log</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100 MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>[%-5level] %d{HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n</pattern><charset>UTF-8</charset> <!-- 此处设置字符集 --></encoder></appender><!-- 日志级别 --><root><!-- 定义了ERROR和INFO级别的日志;分别在FILE文件和控制台输出 --><level value="INFO" /><appender-ref ref="baselog" /><appender-ref ref="console" /></root><logger name="com.louis.kitty.generator" level="INFO"><appender-ref ref="baselog" /></logger> </configuration>