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 ] 第三周 构建一个 ...
随机推荐
- http中长连接和websocket的长连接的区别
一.什么是http协议 HTTP是一个应用层协议,无状态的,端口号为80.主要的版本有1.0/1.1/2.0. HTTP/1.* 一次请求-响应,建立一个连接,用完关闭: HTTP/1.1 串行化 ...
- P1268 树的重量【构造】
题目描述 树可以用来表示物种之间的进化关系.一棵“进化树”是一个带边权的树,其叶节点表示一个物种,两个叶节点之间的距离表示两个物种的差异.现在,一个重要的问题是,根据物种之间的距离,重构相应的“进化树 ...
- Wannafly Winter Camp 2020 Day 5J Xor on Figures - 线性基,bitset
有一个\(2^k\cdot 2^k\) 的全零矩阵 \(M\),给出 \(2^k\cdot 2^k\) 的 \(01\) 矩阵 \(F\),现在可以将 \(F\) 的左上角置于 \(M\) 的任一位置 ...
- 无法解析的外部符号 _snprintf
VS2010下: 在使用第三方静态库 遇到无法解析的外部符号 _snprintf . 编译第三方库的时候 看到有 warning C4013: 'snprintf' undefined; assumi ...
- 查询避免Unknown column ‘xxx’ in ‘where clause
问题: 单从字面理解,我们很容易得出列名称不存在的结论, 但是,很多时候并不是列名出错造成的,而是由于拼凑sql语句时对字符类型数据没有用引号引起来造成的. 例子: 例如: String sql=& ...
- selenium--find_element_by_xpath()方法汇总
一.从根目录/开始 有点像Linux的文件查看,/代表根目录,一级一级的查找,直接子节点,相当于css_selector中的>号/html/body/div/p 二.根据元素属性选择: 查找具体 ...
- JavaScript仿计算器案例源代码
效果图 index.html <!DOCTYPE html> <html> <head> <title></title> <link ...
- 《UNIX环境高级编程》源码配置——apue.3e 安装
转载从:http://blog.csdn.net/songshimvp1/article/details/51440545 网上大都是针对UNIX高级编程第二版的头文件搭建,现在对于第三版来说有些过时 ...
- python xlrd 模块(获取Excel表中数据)
python xlrd 模块(获取Excel表中数据) 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了pyt ...
- vuejs在解析时出现闪烁的原因及防止闪烁的方法
原因: 在使用vuejs.angularjs开发时,经常会遇见在如Chrome这类能够快速解析的浏览器上出现表达式({{ express }} ),或者是模块(div)的闪烁.对于这个问题由于Java ...