Docker - 构建一个简单的应用镜像
概述
- 做个简单的可用镜像
背景
- 之前的镜像, 都是 命令教程 类的
- 这次我想构建一个 可以用的 简单镜像镜像
1. 环境
os
- centos7
docker
- 18.09
docker image
- java
- openjdk
- docker pull openjdk:8u232-jre-stretch
- openjdk
- java
spring boot
- 2.2.1
jar 包
- 这个自己随便打一个就行了
- 一般的 web 服务就行
- 这个自己随便打一个就行了
2. 准备
概述
- 制作镜像前的准别
基础镜像
- 需要准备好基础镜像
context
- 创建好 上下文目录
- 将 jar 包放进去
- 我的 jar 包, 叫做 ademo-0.0.1-SNAPSHOT.jar
3. 编写 Dockerfile
概述
- 编写 Dockerfile
内容
# 基础镜像
FROM openjdk:8u232-jre-stretch
# 将 context 的 jar 包, 拷贝到 容器的工作目录下, jar 包名称不变
COPY ademo-0.0.1-SNAPSHOT.jar ademo-0.0.1-SNAPSHOT.jar
# spring boot 的 web 应用, 默认占用 8080 端口, 所以把它 暴露出去 即可
EXPOSE 8080
# 入口命令, 启动服务器
ENTRYPOINT ["java", "-jar", "ademo-0.0.1-SNAPSHOT.jar"]
4. 构建镜像
概述
- 构建 docker 镜像
命令
> docker image build -t repo/jardemo:0.0.1 .
结果
- 构建成功
- 可以通过
docker image ls
命令查看
- 可以通过
- 构建成功
5. 启动容器
概述
- 启动容器
命令
# --name 指定名字
# -P 暴露端口
# -d 后台运行
# 不指定命令和参数, 因为 entrypoint 的已经足够
> docker run --name jardemo -P -d repo/jardemo:0.0.1
结果
- 启动成功
- 命令
docker container ls
查看- 顺便查看下, 8080映射到了 那个端口
- 命令
- 启动成功
验证
- 浏览器验证
- 验证你可以访问那个 url, 就可以了
- 浏览器验证
6. 其他
查看日志
> docker container logs -f jardemo
top
> docker container top jardemo
ps
ref
- 暂时没有 ref 吧
docker 镜像: java 环境
- java 镜像
疑问
- 到底该用 什么版本的镜像 呢
来源
- docker hub
- oracle
- openjdk
- 下面还有 jdk 和 jre ...
- 甚至还有 微软, ibm...
- 自己构造
- 从头开始构造...
- docker hub
感觉需要真的需要想明白...
- java 镜像
docker 镜像: 安全
- 问题1: 安全如何保证
- 现在的登录方式, 基本没有密码
- 能否指定密码什么的
- 如果真的指定了, 会影响 容器间的交互吗?
- 现在的登录方式, 基本没有密码
- 问题1: 安全如何保证
Docker - 构建一个简单的应用镜像的更多相关文章
- 利用 Docker 构建一个简单的 java 开发编译环境
目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...
- 物联网架构成长之路(25)-Docker构建项目用到的镜像1
0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...
- docker构建.net core运行的镜像
在docker很火的今天,越来越多的应用现在都在往docker上迁移,.net core怎么能落后? 项目要运行在docker上,我们需要先制作镜像,可以基于centos来制作,当然也可以基于Ubun ...
- 使用Docker构建PHP7.4 + Swoole + Redis镜像
使用Docker构建PHP7.4 + Swoole + Redis镜像 Docker是一个用于开发,交付和运行应用程序的开放平台.开发者可以利用Docker来快速交付,测试和部署代码,从而大大减少编写 ...
- struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb
在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...
- 【Android Developers Training】 3. 构建一个简单UI
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 构建一个简单的Linux系统 MenuOs —— start_kernel到init进程(20135304刘世鹏)
构建一个简单的Linux系统 MenuOs —— start_kernel到init进程 作者:刘世鹏20135304 <Linux内核分析>MOOC课程http://mooc.study ...
- gRPC初探——概念介绍以及如何构建一个简单的gRPC服务
目录 引言 1. gRPC简介 2. 使用Protocol Buffers进行服务定义 2.1 定义消息 2.2 定义服务接口 3.构建简单的gRPC服务 3.1 编写proto文件,定义消息和接口 ...
- 第三周——构建一个简单的Linux系统MenuOS
[洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 第三周 构建一个 ...
随机推荐
- 性能优化 && 用户体验
性能优化 下拉菜单那种最好是点击时候请求,或者是查询时候请求 分页加载 用户体验 有加载.进度条.友好提示
- Java代码中特殊注释
Java代码中特殊注释 TODO: + 说明:标识处有功能代码待编写,待实现的功能在说明中会简略说明. FIXME: + 说明:标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说 ...
- openlayers显示区域
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- SQL语句中设置字段值取反操作
1.对布尔值取反,使用 ~. 如 update set status=~status where id=2; status的值为true || false. 2.对0.1 数值取反,使用abs() 取 ...
- WPF实现高仿统计标题卡
飘哇~~~,在家数瓜子仁儿,闲来无事,看东看西,也找点儿,最近正在看看WPF动画,光看也是不行,需要带着目的去学习,整合知识碎片,恰巧,看到Github中一个基于Ant Designer设计风格的后台 ...
- i春秋公益赛 ezpload
题目思路:一看解出的人比较多,emmm,传个马,命令执行一下.最后读到flag文件. /readflag,可执行. 题对萌新比较友好...... 考点:Linux命令,文件上传,命令执行. http: ...
- VsCode开发Java SpringBoot遇到的问题
报错截图 报错一:Build failed, Do you want to continue? 编译失败,你想继续吗? 报错二:ConfigError:The Project "Demo&q ...
- new SparkContext()发生错误java.lang.NoSuchMethodError: scala.Predef
参考:https://blog.csdn.net/weixin_40137479/article/details/80320324 new SparkContext(conf)发生错误: Except ...
- 记录 Docker 的学习过程 (日志篇)
日志收集 elk 在node3上操作 docker pull sebp/elk:5610 node3# sysctl vm.max_map_count=262144 node3# docker run ...
- 使用win10 IIS 发布局域网网站
1.安装IIS 按win+R键,输入control,打开控制面板,点击程序,点击 启用或关闭windows 功能,将Internet Information Service勾上,把下属的asp.net ...