DockerFile

DockerFile

一、关于DockerFile

1. DockerFile 是什么?

DockerFile就是镜像描述文件

2. DockerFile 有什么用?

可以通过DockerFile文件构建一个属于自己的镜像

3. 为什么使用 DockerFile 构建镜像?

Docker官方其实已经提供了很多的应用程序,但是如果我们想有适用于我们自己业务的镜像,就必须使用DockerFile去构建自定义的镜像

二、如何构建镜像

1. 创建DockerFile文件

在一个指定位置处,去创建DockerFile文件,然后在DockerFile文件中编写命令。要求:DockerFile文件中一行只有一条完整命令

2. 构建镜像
docker build -t 镜像名称:镜像版本 .
# 注:这个.代表DockerFile文件所在的位置
3. DockerFile内容知识
  • 每条保留字指令都必须大写,且后面都要跟至少一个参数
  • 指定按照从上到下,顺序执行
  • #表示注释
  • 每条指定都会创建一个新的镜像层,并对镜像进行提交
4. DockerFile的保留字命令

官方说明:Dockerfile reference | Docker Documentation

保留字作用
FROM当前镜像是基于哪个镜像的
RUN构建镜像时需要运行的指令
EXPOSE当前镜像对外暴露的端口号
WORKDIR指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
ENV用来在构建镜像过程中设置环境变量
ADD将宿主机目录下文件拷贝进镜像且ADD命令会自动处理URL和解压tar包
COPY类似于ADD,拷贝宿主机原路径中的文件和目录到镜像中,将从构建上下文目录中的文件或目录复制到镜像内的目标路径位置
VOLUME容器数据卷,用于数据保存和持久化工作
CMD指定一个容器启动时要运行的命令,DockerFile中可以有多个CMD指令,但是只有最后一个生效,CMD会被docker run之后的参数替换
ENTRYPOINT指定一个容器启动时要运行的命令,目的和CMD一样

三、构建并运行示例

说明:以一个SpringBoot应用为例,对redis进行简单的操作

1. 创建SpringBoot应用

在SpringBoot应用的application.yml文件中,spring.redis.host的值为docker中redis的容器名称

spring:
  redis:
    host: myRedis
2. 打包SpringBoot应用

将打包好的SpringBoot应用的jar包上传至指定目录,并在当前目录下创建DockerFile文件

本文目录:/usr/local/isabener/myApplication/testSpringBootRedis(该目录下存在jar包和DockerFile文件)

DockerFile内容:

FROM kdvolder/jdk8
ENV APP_PATH=/testSpringBootRedis
WORKDIR $APP_PATH
ADD 015-springboot-redis-0.0.1-SNAPSHOT.jar $APP_PATH/015-springboot-redis-0.0.1-SNAPSHOT.jar
EXPOSE 9999
ENTRYPOINT ["java","-jar"]
CMD ["015-springboot-redis-0.0.1-SNAPSHOT.jar"]
3. 构建镜像

在/usr/local/isabener/myApplication/testSpringBootRedis目录下,执行以下命令:

docker build -t myapplication:1.0 .
4. 运行成容器
docker run -d -p 9999:9999 --name myapp myapplication:1.0
5. 将应用容器加入至redis所在网络
docker network connect springbootRedisApplication myapp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值