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 ] 第三周 构建一个 ...
随机推荐
- ASP.NET Core SignalR 使用
SignalR: 实时 Web 功能使服务器端代码能够即时将内容推送到客户端(包括B/S,C/S,Andriod). SignalR最新版本为3.0(截止2020-02-28) SignalR ...
- PAT (Basic Level) Practice (中文)1031 查验身份证 (15 分)
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
- Cloud插件,链接oracle数据库
业务场景:客户需要在Cloud中获取第三方系统的数据,但是第三方系统的数据库是oracle,这是就需要连接oracle数据库获取数据了. 需要引用Oracle.ManagedDataAccess.dl ...
- Charles抓包问题
Charles抓包问题 抓包失败解决方法之一:在proxy下的Recording Setting找到解决方法 找到里面的include 把勾去掉,点击OK,然后就恢复正常可以抓包了.
- Dubbo之服务消费
Dubbo的服务消费主要包括两个部分.第一大步是ReferenceConfig类的init方法调用Protocol的refer方法生成Invoker实例,这是服务消息的关键.第二大步是把Invoker ...
- php文件上传与下载(附封装好的函数文件)
单文件上传前端页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- jQuery---手风琴案例+stop的使用(解决动画队列的问题)
手风琴案例+stop的使用(解决动画队列的问题) stop();// 停止当前正在执行的动画 <!DOCTYPE html> <html lang="en"> ...
- Hadoop学习之路(4)Intelij+Maven搭建Hadoop项目
1创建工程 点击project--Maven--next 2通过maven导入项目依赖jar包 (1)设置maven自动导入依赖jar包 勾选 Import Maven projects automa ...
- 数据预处理 | 使用 Pandas 进行数值型数据的 标准化 归一化 离散化 二值化
1 标准化 & 归一化 导包和数据 import numpy as np from sklearn import preprocessing data = np.loadtxt('data.t ...
- Cannot resolve collation conflict between "Chinese_Taiwan_Stroke_CI_AS" and "Chinese_PRC_CI_AS" in UNION ALL operator occurring in SELECT statement column 1.
Cannot resolve collation conflict between . 解决方案: COLLATE Chinese_PRC_CI_AS 例子: SELECT A.Name FROM A ...