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 ] 第三周 构建一个 ...
随机推荐
- hackintosh和windows时区问题
最近搞了几台黑苹果,驱动.平台.引导基本搞明白了.但安装成功之后,发现一个问题,切换系统之后,时间老是差了几个小时. 这肯定是时区设置的事儿!百度之后,发现简单地往Windows注册表中写了一条信息就 ...
- STM32CubeMX自建MDK工程的基本步骤
根据需要调节各总线频率 最下方选项,√去掉,不用实时更新库,选择自己库所在路径就好. 点击左侧, 选择"Code Generator", 选择.c 和 .h文件不分开 最后,点击& ...
- 论文阅读笔记(十一)【ICCV2017】:Jointly Attentive Spatial-Temporal Pooling Networks for Video-based Person Re-Identification
Introduction (1)Motivation: 当前采用CNN-RNN模型解决行人重识别问题仅仅提取单一视频序列的特征表示,而没有把视频序列匹配间的影响考虑在内,即在比较不同人的时候,根据不同 ...
- MySQL的DML语言(增删改)
MySQL的DML语言(增删改) 补充说明,外键:不要使用外键,一切外键概念都在应用层解决. 补充说明,数据库的列,也就是字段名,尽量带上飘符号` 数据库存在的意义:数据存储和数据管理. 数据库:行( ...
- SKlearn | 学习总结
1 简介 scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包.它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法 ...
- SSH、telnet配置以及它们之间区别
命令: SSH ip domain-name www.baidu.com --配置主机名(用来远程访问) user privilege secret --配置账户名和密码 line vty --配置端 ...
- vue.js中使用离线检测
Html5在window.navigator对象上添加了一个属性onLine 返回布尔值 true表示在线.同时新增了两个事件: window.addEventListener('online', f ...
- 使用win10 IIS 发布局域网网站
1.安装IIS 按win+R键,输入control,打开控制面板,点击程序,点击 启用或关闭windows 功能,将Internet Information Service勾上,把下属的asp.net ...
- 机器学习作业(二)逻辑回归——Matlab实现
题目太长啦!文档下载[传送门] 第1题 简述:实现逻辑回归. 第1步:加载数据文件: data = load('ex2data1.txt'); X = data(:, [1, 2]); y = dat ...
- [Agc001A/At1979] BBQ Easy - 贪心
要准备N组食物, 他有2N的食材, 需要两两组成一个食物, 食物的价值是两食材中较小的那个. 问最大总价值是多少 ---------- 考虑到\(ans = (sum - delta)/2\),只需要 ...