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 中国是世界绿色发展的坚定行动派 7904851
- 2 外交部再次回应:中美未就关税谈判 7809659
- 3 “中国赢下了这一轮” 7712070
- 4 航天员乘组拍下“太空全家福” 7616130
- 5 中国这两个邻国又到战争边缘 7522930
- 6 不要欺负七旬老人唐国强 7425581
- 7 #印巴若开战谁会赢得战争# 7328929
- 8 苏炳添担任暨南大学体育学院院长 7233123
- 9 Create2025百度AI开发者大会 7139757
- 10 儿子悄悄考上北大妈妈惊成静止画面 7040827