| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 【Java】程序制作Docker镜像 推荐方案 -> 正文阅读 |
|
[系统运维]【Java】程序制作Docker镜像 推荐方案 |
文章目录背景随着我们分布式的观念在各个领域使用,docker容器也逐渐的背大家所认可和使用,那么我们想制作容器就得有镜像如何制作镜像呢?请往下看,Dockerfile就是制作镜像的原始武器: 制作条件在制作 JAVA 应用的镜像过程中,一般情况下,我们制作出来的镜像文件都需要满足以下的需求:
Dockerfile指令:1、FROM 第一条指令必须为FROM指令,并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令(每个镜像一次) 2、MAINTAINET 指定维护者的信息 3、RUN 每条指令将在当前镜像基础上执行,并提交为新的镜像。(可以用“\”换行) 4、CMD 指定启动容器时执行的命令,每个Dockerfile只能有一条CMD指令,如果指定了多条指令,则最后一条执行。(会被启动时指定的命令覆盖) 5、EXPOSE 告诉Docker服务端暴露端口,在容器启动时需要通过 -p 做端口映射 6、ENV 指定环境变量,会被RUN指令使用,并在容器运行时保存 7、ADD 复制指定的到容器的中,可以是Dockerfile所在的目录的一个相对路径;可以是URL,也可以是tar.gz(自动解压) 8、COPY 复制本地主机的 ( 为 Dockerfile 所在目录的相对路径)到容器中的 (当使用本地目录为源目录时,推荐使用 COPY) 9、ENTRYPOINT 配置容器启动后执行的命令,并且不可被 docker run 提供的参数覆盖。(每个 Dockerfile 中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效) 10、VOLUME 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等 11、USER 指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。 12、WORKDIR 为后续的 RUN 、 CMD 、 ENTRYPOINT 指令配置工作目录。(可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径, 则会基于之前命令指定的路径) 13、ONBUILD 配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令 实践步骤使用官网提供的基础镜像作为镜像基础根据 openjdk 高度定制的 Alpine Linux + JRE8 镜像,其中包含了东八区时区设置和 ttf 绘制图片字体的设置
设定容器的正确的时间和时区
容器中采用非 root 用户权限启动应用程序制作:docker build -t myappname . ( . 不要忘了)
DockerFile样例
COPY 与 ADD 区别COPY
如果使用下面的命令,不仅镜像的层数减少,而且镜像中也不包含 big.tar.xz 文件,代码如下:
所以ADD命令官方推荐只有在解压缩文件并把它们添加到镜像中时才需要。 举个栗子我想吧一个java应用的jar包 打成镜像如何做?
3.现在就是执行Dockerfile 生成镜像:(当前目录下执行)
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 0:29:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |