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: 安全如何保证
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出