docker实战(3)

1, jdk17版本的dockerfile

FROM eclipse-temurin:17-jre
ADD  ./target/ods-poc-0.0.1-SNAPSHOT.jar /home/app/app.jar
WORKDIR /home/app
ENV TZ Asia/Shanghai
ENTRYPOINT  ["java","-jar","/home/app/app.jar"]
EXPOSE 8083

dockerfile

1, ENV: 可以设置变量,并在后续通过${xxx}来进行引用.如 ENV name=value , 后续通过${name}来引用

2, 执行一个dockerfile文件构建一个镜像: 在Dockerfile文件目录下,执行 docker build -t xxx , 其中 xxx表示给生成的镜像起的名字.

3, 复制拷贝 ADD & COPY区别:

COPY

ADD

ADD与COPY指令在功能上十分相似,但是在COPY的基础上增加了一些功能。比如,源路径可以是一个指向一个网络文件的URL,这种情况下,Docker引擎会试图下载这个URL指向的文件到去。

此外,当为一个tar压缩文件时,该压缩文件在被复制到容器中时会被解压提取。但是使用COPY指令只会将tar压缩文件拷贝到中。

参照: https://www.cnblogs.com/zdz8207/p/linux-docker-add-copy.html

4, 引用其他文件: ENTRYPOINT ["./entrypoint.sh"] 在dockerfile同目录下创建一个entrypoint.sh, 内容如下:

#!/bin/bash pwd ls -i env java ${JAVA_OPS} -jar /home/app/app.jar

5, 更改timezone时区:

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

6, WORKDIR

1, 切换到镜像中的指定路径,设置工作目录

2, 在 WORKDIR 中需要使用绝对路径,如果镜像中对应的路径不存在,会自动创建此目录

3, 一般用 WORKDIR 来替代 切换目录进行操作的指令

4, 可以被使用多次,进行多次目录切换;如果后面的路径使用了相对路径,则会相对于上一个路径来

7, docker里面拉取镜像都是在docker.io;拉取的,我们可以访问网站: https://hub.docker.com/layers/ 然后搜索需要下载的镜像名,然后查看其对应可以被拉取的版本号

--------------------------------------------------------------------------------------------------------

Docker架构

a3cf5d8a5c244a96a70975af5b027fa7.png

--------------------------------------------------------------------------------------------------

0ad5cc716135494d8d0919ef5839ce5c.png

----------------------------------------------------------------------------------------

docker常用命令

1,运行指定容器

docker run [containerId]

docker restart [containerId]

2,终止容器

docker stop [containerId]

3,查看所有container

docker container ls -a

4,删除指定container

docker rm [containerId]

5,开机启动docker :systemctl enable docker.service

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/543530.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“技多不压身”是什么意思?看完这篇文章你会明白:有了手艺,走遍天下都不怕!

“技多不压身”是什么意思?看完这篇文章你会明白:有了手艺,走遍天下都不怕! 咱们的老祖宗流传一句话:“一招鲜,吃遍天。”这话说得直白,却道出了学一门手艺或技术对于人生的重要性。“李秘书讲…

HarmonyOS NEXT应用开发—状态栏显隐变化

介绍 本示例介绍使用Scroll组件的滚动事件 onScroll 实现状态栏显隐变化。该场景多用于各种软件的首页、我的等页面中。 效果预览图 使用说明 加载完成后显示状态栏显隐变化页面,上下拖动屏幕,顶端状态栏出现显隐变化。 实现思路 在置顶位置使用sta…

查询ES之细化需求实现多字段、范围过滤、加权和高亮

多字段查询和过滤 一次从两个字段中查询同一个搜索词,比如从title和content中进行查询,另外指定active字段的值必须为true(一般代表该文档未被删除或隐藏): GET /docwrite2/_search { "query": { "…

如何本地搭建hMailServer邮件服务

文章目录 前言1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 前言 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpola…

算法学习 | day19/60 二叉搜索树的最近公共祖先/二叉搜索树中的插入操作/删除二叉搜索树中的节点

一、题目打卡 1.1 二叉搜索树的最近公共祖先(借助答案的思路) 题目链接:. - 力扣(LeetCode) class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if(!root) return…

Midjourney视觉垫图

https://github.com/lllyasviel/Fooocus/discussions/117https://github.com/lllyasviel/Fooocus/discussions/117掌握Midjourney的垫图技巧:AI绘画中的参考利器本期将深入了解AI绘画的垫图技巧,让作品获得更好的出图效果https://mp.weixin.qq.com/s/RS2…

【算法训练营】周测1

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 如果需要答案代码可以私聊博主 有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~ 考题11-1 题目描述 有一个初始时为空的序列,你的任务是维护这个…

代码随想录算法训练营第40天 | 343. 整数拆分 ,96.不同的二叉搜索树

动态规划章节理论基础: https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 343. 整数拆分 题目链接:https://leetcode.cn/problems/integer-break/ 思路: 动规五部曲&#xf…

C语言 之 结构体超详细总结

🌈 个人主页:白子寰 🔥 分类专栏:魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文(平均质量分78.8),分…

文件包含例子

一、常见的文件包含函数 php中常见的文件包含函数有以下四种: include() require() include_once() require()_once() include与require基本是相同的,除了错误处理方面: include(),只生成警告(E_WARNING)&#x…

什么是 KNIME Hub(2024)

什么是 KNIME Hub KNIME Hub 是一个中央存储库和协作平台,它是用来促进与 KNIME Analytics Platform(分析平台,AP)相关的工作流、节点、组件和扩展的共享和管理。它既充当工作流存储库又充当协作空间,使用户能够发现和利用可合并到其数据分析项目中的各种…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:StepperItem)

用作Stepper组件的页面子组件。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 支持单个子组件。 接口 StepperItem() 属性 参数名参数类型参数描述prevLabelstring设置左侧文本按钮内…