Docker的7项优秀实践
Dockerfile
FROM eclipse-temurin:17
RUN mkdir /opt/app
ARG JAR_FILE
ADD target/${JAR_FILE} /opt/app/app.jar
CMD ["java", "-jar", "/opt/app/app.jar"]
lFROM:将Java Docker镜像--eclipse-temurin:17作为基本镜像; lRUN:为jar文件创建一个目录; lARG:通过提供一个参数--JAR_FILE,避免将jar文件名被硬编码到Dockerfile中; lADD:将jar文件添加到Docker镜像中; lCMD:包含了在运行容器时必须执行的命令。
基本的Linux知识 基本的Java和Spring Boot知识 基本的Docker知识
Shell
$ MVN spring-boot:run
XML
<plugin>
<groupId>com.xenoamess.docker</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.25</version>
<configuration>
<repository>mydeveloperplanet/dockerbestpractices</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
Shell
$ mvn clean verify
Shell
$ mvn dockerfile:build
Shell
$ docker run --name dockerbestpractices mydeveloperplanet/dockerbestpractices:0.0.1-SNAPSHOT
Shell
$ docker inspect dockerbestpractices | grep IPAddress
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.3",
"IPAddress": "172.17.0.3"
Shell
$ curl http://172.17.0.3:8080/hello
Hello Docker!
请访问DockerHub的链接; 搜索‘eclipse-temurin’; 导航到“标签”; 搜索17; 按A-Z排序; 单击标签17。
Dockerfile
FROM eclipse-temurin:17
Dockerfile
FROM eclipse-temurin: 17.0.5_8-jre-alpine@sha256:02c04793fa49ad5cd193c961403223755f9209a67894622e05438598b32f210e
Shell
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mydeveloperplanet/dockerbestpractices 0.0.1-SNAPSHOT 0b8d89616602 3 seconds ago 188MB
Shell
2022-11-26 09:03:41.210 INFO 1 --- [ main] m.MyDockerBestPracticesPlanetApplication : Starting MyDockerBestPracticesPlanetApplication v0.0.1-SNAPSHOT using Java 17.0.5 on 3b06feee6c65 with PID 1 (/opt/app/app.jar started by root in /)
Dockerfile
RUN addgroup——system javauser && adduser -S -S /usr/sbin/nologin -G javauser javauser
-h,即DIR主目录 -g,即GECOS字段 -s,即登录SHELL -G,即组 -S,即创建系统级用户 -D,即不用设置密码 -H,即不要创建主目录 -u,即UID,用户id -k,即Skeleton目录(/etc/SKEL)
Dockerfile
RUN chown -R javauser:javauser /opt/app
Dockerfile
FROM eclipse-temurin:17.0.5_8-jre-alpine@sha256:02c04793fa49ad5cd193c961403223755f9209a67894622e05438598b32f210e
RUN mkdir /opt/app
RUN addgroup --system javauser && adduser -S -s /usr/sbin/nologin -G javauser javauser
ARG JAR_FILE
ADD target/${JAR_FILE} /opt/app/app.jar
RUN chown -R javauser:javauser /opt/app
USER javauser
CMD ["java", "-jar", "/opt/app/app.jar"]
为了测试这个新的镜像,您首先需要通过如下命令,停止并删除正在运行的容器。
Shell
$ docker stop dockerbestpractices
$ docker rm dockerbestpractices
Shell
2022-11-26 09:06:45.227 INFO 1 --- [ main] m.MyDockerBestPracticesPlanetApplication : Starting MyDockerBestPracticesPlanetApplication v0.0.1-SNAPSHOT using Java 17.0.5 on ab1bcd38dff7 with PID 1 (/opt/app/app.jar started by javauser in /)
Dockerfile
RUN mkdir /opt/app
Dockerfile
WORKDIR /opt/app
Dockerfile
FROM eclipse-temurin:17.0.5_8-jre-alpine@sha256:02c04793fa49ad5cd193c961403223755f9209a67894622e05438598b32f210e
WORKDIR /opt/app
RUN addgroup --system javauser && adduser -S -s /usr/sbin/nologin -G javauser javauser
ARG JAR_FILE
ADD target/${JAR_FILE} app.jar
RUN chown -R javauser:javauser .
USER javauser
CMD ["java", "-jar", "app.jar"]
Shell
2022-11-26 16:07:18.503 INFO 1 --- [ main] m.MyDockerBestPracticesPlanetApplication : Starting MyDockerBestPracticesPlanetApplication v0.0.1-SNAPSHOT using Java 17.0.5 on fe5cf9223143 with PID 1 (/opt/app/app.jar started by javauser in /opt/app)
ENTRYPOINT:当您总需要执行各种命令,才能构建出可执行的Docker镜像时,只要您愿意,完全可以将参数附加到命令中。 CMD:当您想提供一个默认的参数集,且允许在容器运行时被命令行覆盖时。
Dockerfile
CMD ["java", "-jar", "app.jar"]
Dockerfile
ENTRYPOINT ["java", "-jar", "app.jar"]
Dockerfile
ADD target/${JAR_FILE} app.jar
Dockerfile
COPY target/${JAR_FILE} app.jar
Plain Text
**/**
!target/*.jar
原文链接:
https://dzone.com/articles/docker-best-practices
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号
随时掌握互联网精彩
随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 和人民在一起 7916011
- 2 警惕!今年第一场大寒潮或波及全国 7918969
- 3 柯洁被判负 7848292
- 4 今天明天 都是小年 7769041
- 5 王菲时隔7年再上春晚 将唱这首歌 7685607
- 6 公务员省考:学历要求越来越高 7502299
- 7 打工人你的早餐摊子已返乡 7445636
- 8 59岁陈慧娴演唱会上出意外 7351888
- 9 尹锡悦穿10号囚服 狱警叫他10号 7271459
- 10 《漂白》编剧再声明身正不怕影子斜 7169670