本文系根据网上其他人的文章,记录自己的 demo 经验。相关链接附在文中。
通过 Dockerfile 构造镜像
参考:https://www.jianshu.com/p/2cddddfc1356
Dockerfile 可以基于一个已有的镜像。添加一些配置或部署一下程序后构建成为一个新的对象。
常用的命令。
FROM image_name:tag 定义使用哪个基本镜像启动构建流程
MAINTAINER user_name 声明镜像的创建者。版权声明
ENV key value 添加环境变量 这个可以写多个
RUN command 表示要执行的命令 这个是核心内容 可以写多条
ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器中 如果是压缩文件的话 会自己解压
COYP source_dir/file dest_dir/file 同ADD 就是不会解压
WORKDIR path_dir 工作目录 就是这样命令执行的目录 登录容器后也在这个目录
CMD 容器启动后要处理的命令
这个方式 可以很方便的在一台装有docker的宿主机上 同步系统的环境 方便系统的部署和迁移
-
demo
现在以 docker 官方的 centos8 镜像 添加 jdk1.8 然后 部署一个 springboot 的 HelloWorld 项目来练习下 Dockerfile
- 创建一个最简单的 spring-boot demo 工程
参考:https://blog.csdn.net/justsomebody126/article/details/102791786,修改 application.properties 里的启动端口 server.port=9090。
该 demo 执行 curl http://127.0.0.1:9090/hello 固定返回 Hello Spring Boot。
打包成 jar,上传到要创建 docker image 的 linux 机器上。
- 从官网下载的jdk8的rpm安装包重命名为 jdk8.rpm
- 创建 Dockerfile
FROM centos
WORKDIR /dockerdemo
COPY jdk8.rpm jdk8.rpm
RUN rpm -ivh