1. 概述

    1. 做个简单的可用镜像
  2. 背景

    1. 之前的镜像, 都是 命令教程 类的
    2. 这次我想构建一个 可以用的 简单镜像镜像

1. 环境

  1. os

    1. centos7
  2. docker

    1. 18.09
  3. docker image

    1. java

      1. openjdk

        1. docker pull openjdk:8u232-jre-stretch
  4. spring boot

    1. 2.2.1
  5. jar 包

    1. 这个自己随便打一个就行了

      1. 一般的 web 服务就行

2. 准备

  1. 概述

    1. 制作镜像前的准别
  2. 基础镜像

    1. 需要准备好基础镜像
  3. context

    1. 创建好 上下文目录
    2. 将 jar 包放进去
      1. 我的 jar 包, 叫做 ademo-0.0.1-SNAPSHOT.jar

3. 编写 Dockerfile

  1. 概述

    1. 编写 Dockerfile
  2. 内容

    # 基础镜像
    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. 构建镜像

  1. 概述

    1. 构建 docker 镜像
  2. 命令

    > docker image build -t repo/jardemo:0.0.1 .
  3. 结果

    1. 构建成功

      1. 可以通过 docker image ls 命令查看

5. 启动容器

  1. 概述

    1. 启动容器
  2. 命令

    # --name 指定名字
    # -P 暴露端口
    # -d 后台运行
    # 不指定命令和参数, 因为 entrypoint 的已经足够
    > docker run --name jardemo -P -d repo/jardemo:0.0.1
  3. 结果

    1. 启动成功

      1. 命令 docker container ls 查看

        1. 顺便查看下, 8080映射到了 那个端口
  4. 验证

    1. 浏览器验证

      1. 验证你可以访问那个 url, 就可以了

6. 其他

  1. 查看日志

    > docker container logs -f jardemo
  2. top

    > docker container top jardemo

ps

  1. ref

    1. 暂时没有 ref 吧
  2. docker 镜像: java 环境

    1. java 镜像

      1. 疑问

        1. 到底该用 什么版本的镜像 呢
      2. 来源

        1. docker hub

          1. oracle
          2. openjdk
            1. 下面还有 jdk 和 jre ...
          3. 甚至还有 微软, ibm...
        2. 自己构造
          1. 从头开始构造...
      3. 感觉需要真的需要想明白...

  3. docker 镜像: 安全

    1. 问题1: 安全如何保证

      1. 现在的登录方式, 基本没有密码

        1. 能否指定密码什么的
        2. 如果真的指定了, 会影响 容器间的交互吗?

Docker - 构建一个简单的应用镜像的更多相关文章

  1. 利用 Docker 构建一个简单的 java 开发编译环境

    目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...

  2. 物联网架构成长之路(25)-Docker构建项目用到的镜像1

    0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...

  3. docker构建.net core运行的镜像

    在docker很火的今天,越来越多的应用现在都在往docker上迁移,.net core怎么能落后? 项目要运行在docker上,我们需要先制作镜像,可以基于centos来制作,当然也可以基于Ubun ...

  4. 使用Docker构建PHP7.4 + Swoole + Redis镜像

    使用Docker构建PHP7.4 + Swoole + Redis镜像 Docker是一个用于开发,交付和运行应用程序的开放平台.开发者可以利用Docker来快速交付,测试和部署代码,从而大大减少编写 ...

  5. struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb

    在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...

  6. 【Android Developers Training】 3. 构建一个简单UI

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  7. 构建一个简单的Linux系统 MenuOs —— start_kernel到init进程(20135304刘世鹏)

    构建一个简单的Linux系统 MenuOs —— start_kernel到init进程 作者:刘世鹏20135304 <Linux内核分析>MOOC课程http://mooc.study ...

  8. gRPC初探——概念介绍以及如何构建一个简单的gRPC服务

    目录 引言 1. gRPC简介 2. 使用Protocol Buffers进行服务定义 2.1 定义消息 2.2 定义服务接口 3.构建简单的gRPC服务 3.1 编写proto文件,定义消息和接口 ...

  9. 第三周——构建一个简单的Linux系统MenuOS

    [洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 第三周  构建一个 ...

随机推荐

  1. http中长连接和websocket的长连接的区别

    一.什么是http协议 HTTP是一个应用层协议,无状态的,端口号为80.主要的版本有1.0/1.1/2.0.   HTTP/1.* 一次请求-响应,建立一个连接,用完关闭: HTTP/1.1 串行化 ...

  2. P1268 树的重量【构造】

    题目描述 树可以用来表示物种之间的进化关系.一棵“进化树”是一个带边权的树,其叶节点表示一个物种,两个叶节点之间的距离表示两个物种的差异.现在,一个重要的问题是,根据物种之间的距离,重构相应的“进化树 ...

  3. 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\) 的任一位置 ...

  4. 无法解析的外部符号 _snprintf

    VS2010下: 在使用第三方静态库 遇到无法解析的外部符号 _snprintf . 编译第三方库的时候 看到有 warning C4013: 'snprintf' undefined; assumi ...

  5. 查询避免Unknown column ‘xxx’ in ‘where clause

    问题: 单从字面理解,我们很容易得出列名称不存在的结论, 但是,很多时候并不是列名出错造成的,而是由于拼凑sql语句时对字符类型数据没有用引号引起来造成的. 例子: 例如:  String sql=& ...

  6. selenium--find_element_by_xpath()方法汇总

    一.从根目录/开始 有点像Linux的文件查看,/代表根目录,一级一级的查找,直接子节点,相当于css_selector中的>号/html/body/div/p 二.根据元素属性选择: 查找具体 ...

  7. JavaScript仿计算器案例源代码

    效果图 index.html <!DOCTYPE html> <html> <head> <title></title> <link ...

  8. 《UNIX环境高级编程》源码配置——apue.3e 安装

    转载从:http://blog.csdn.net/songshimvp1/article/details/51440545 网上大都是针对UNIX高级编程第二版的头文件搭建,现在对于第三版来说有些过时 ...

  9. python xlrd 模块(获取Excel表中数据)

    python xlrd 模块(获取Excel表中数据) 一.安装xlrd模块   到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了pyt ...

  10. vuejs在解析时出现闪烁的原因及防止闪烁的方法

    原因: 在使用vuejs.angularjs开发时,经常会遇见在如Chrome这类能够快速解析的浏览器上出现表达式({{ express }} ),或者是模块(div)的闪烁.对于这个问题由于Java ...