Dockerfile自定义镜像1

CSDN话题挑战赛第2期
参赛话题:学习笔记

请添加图片描述
个人名片:

博主酒徒ᝰ.
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志三人行,必有我师焉。

请添加图片描述
本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看

一、镜像结构

1.了解

  1. 镜像是分层结构,每一层称为一个Layer
    Entrypoint:入口,是镜像中应用启动的命令
    BaseImage层:包含基本的系统函数库、环境变量、文件系统
    其它:在BaseImage基础上添加依赖、安装程序、完成整个应用的安装和配置
  2. 什么是Dockerfile
    Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
指令说明示例
FROM指定基础镜像FROM centos:6
ENV设置环境变量,可在后面指令使用ENV key value
COPY拷贝本地文件到镜像的指定目录COPY ./mysql-5.7.rpm /tmp
RUN执行Linux的shell命令,一般是安装过程的命令RUN yum install gcc
EXPOSE指定容器运行时监听的端口,是给镜像使用者看的EXPOSE 8080
ENTRYPOINT镜像中应用的启动命令,容器运行时调用ENTRYPOINT java -jar xx.jar
  1. Dockerfile的第一行必须是FROM,从一个基础镜像来构建
  2. 基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine

2.案例

  1. 基于Ubuntu镜像构建一个新镜像,运行一个java项目
    步骤1:新建一个空文件夹docker-demo
    步骤2:拷贝课前资料中的docker-demo.jar文件到docker-demo这个目录
    步骤3:拷贝课前资料中的jdk8.tar.gz文件到docker-demo这个目录
    步骤4:拷贝课前资料提供的Dockerfile到docker-demo这个目录
    步骤5:进入docker-demo
    步骤6:运行命令:docker build -t javaweb:1.0 .
    最后访问 http://192.168.150.101:8090/hello/count,其中的ip改成你的虚拟机ip
# 创建docker-demo文件夹
mkdir docker-demo
# 将资料中的docker-demo.jar,jdk8.tar.gz,Dockerfile复制到docker-demo目录下
# 构建docker镜像,基于Dockerfile
docker build -t javaweb:1.0 .
# 创建并运行javaweb:1.0镜像
docker run --name web -p 8080:8090 -d javaweb:1.0

访问http://192.168.216.128:8080/hello/count
image.png
2. 基于java:8-alpine镜像,将一个Java项目构建为镜像
实现思路如下:
①新建一个空的目录,然后在目录中新建一个文件,命名为Dockerfile
②拷贝课前资料提供的docker-demo.jar到这个目录中
③编写Dockerfile文件:
a)基于java:8-alpine作为基础镜像
b)将app.jar拷贝到镜像中
c)暴露端口
d)编写入口ENTRYPOINT
④使用docker build命令构建镜像
⑤使用docker run创建容器并运行

# 在tmp目录下创建文件夹docker_java
mkdir docker_java
# 创建Dockerfile文件,并添加下面内容
touch Dockerfile
# 创建javaweb:2.0镜像
docker build -t javaweb:2.0 .
# 创建并运行javaweb:2.0容器
docker run --name web2 -p 8080:8090 -d javaweb:2.0

Dockerfile内容

FROM java:8-alpine
COPY ./docker-demo.jar /tmp/app.jar
EXPOSE 8090
ENTRYPOINT java -jar /tmp/app.jar

访问http://192.168.216.128:8080/hello/count
image.png

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:终极编程指南 设计师:CSDN官方博客 返回首页
评论 25

打赏作者

酒徒ᝰ.

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值