废话不多说,直接上菜
如果巨佬们发现有错误,赶紧评论区留言指正,及时提醒小朋友
# 不要将根目录/用作PATH构建上下文,因为它会导致构建将硬盘驱动器的全部内容传输到 Docker 守护程序。 # https://docs.docker.com/engine/reference/builder/#from # 声明参数,在其他地方使用:${arg} ARG JDK_VERSION=17.0.2 ARG JAR_FILE=target/springbootApplication.jar # FROM [--platform=] [@ ] [AS ] # --platform:linux/amd64, linux/arm64、 或windows/amd64。不写默认当前系统平台-platform=$BUILDPLATFORM # image:镜像名称 # digest:tag、版本号,不写默认latest # name:别名 FROM --platform=linux/amd64 openjdk:${JDK_VERSION} AS jdk17 # RUN,两种方式 # RUN (shell形式,命令在 shell 中运行,在 Linux:默认/bin/sh -c 或 Windows 上:cmd /S /C) # RUN ["executable", "param1", "param2"](执行形式) # RUN在下一次构建期间,指令缓存不会自动失效。可以通过使用--no-cache 标志来失效,例如docker build --no-cache # build 过程中要运行的命令。 RUN mkdir -p /app_test_demo # EXPOSE # EXPOSE [ / ...] # 通知 Docker 容器在运行时侦听指定的网络端口。可以指定端口监听 TCP 还是 UDP,如果不指定协议,则默认为 TCP。 EXPOSE 80/udp EXPOSE 80/tcp # ENV,环境变量 ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom" # ADD,两种形式 # ADD [--chown= : ] ... # ADD [--chown= : ] [" ",... " "] 可包含空格的路径。 # :linux用户 # :linux组 # --chown不适用于 Windows 容器 ADD --chown=55:mygroup files* /somedir/ # 从 路径复制新文件、目录或远程文件URL,并将它们添加到镜像的文件系统中 ADD hom* /mydir/ ADD hom?.txt /mydir/ # 是绝对路径,或相对于WORKDIR的路径,WORKDIR源将在目标容器内复制到其中。 # ADD test.txt relativeDir/ == ADD test.txt /relativeDir/ ADD test.txt relativeDir/ # COPY,两种形式 # COPY [--chown= : ] ... # COPY [--chown= : ] [" ",... " "] # :linux用户 # :linux组 # --chown不适用于 Windows 容器 # 用法同 ADD COPY ${JAR_FILE} app.jar # VOLUME,挂载点,将其标记为保存来自本机主机或其他容器的外部挂载卷 VOLUME /myvol # WORKDIR,工作目录 WORKDIR /app_test_demo # CMD,三种形式 # CMD ["executable","param1","param2"](执行形式,这是首选形式) # CMD ["param1","param2"](作为ENTRYPOINT 的默认参数) # CMD command param1 param2(贝壳形式) # Dockerfile 中只能有一条CMD指令, 如果列出多个,则只有最后一个CMD生效 # run 时运行 CMD sleep 60; java -jar app.jar $JAVA_OPTS # RUN CMD ENTRYPOINT 三者区别参考 # https://www.jianshu.com/p/f0a0f6a43907 # ADD COPY 两者区别参考 # https://www.cnblogs.com/flyphper/p/14035214.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)