Docker—自定义镜像(Dockerfile镜像描述文件的使用)

什么是Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。自定义镜像可以用来满足我们的个性化需求。

Docker通过读取Dockerfile 中指令按步自动生成镜像

docker -build -t 机构/镜像名<:tags> dockerfile目录

如何通过Dockerfile构建自定义镜像

Dockerfile自动部署Tomcat应用示例

1、在本地目录创建docker应用

例如在E:\docker\dockerfile\docker-app中创建index.html

文件内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>欢迎来到李小白的博客</title>
</head>
<body>
    <h1>欢迎来到李小白的博客</h1>
</body>
</html>

2、在E:\docker\dockerfile目录下新建Dockerfile文件(注意:Dockerfile无文件后缀)

Dockerfile文件内容如下

# 设置基准镜像,在此基础上进行扩展
FROM tomcat:8.5.46-jdk8-openjdk
# 说明镜像的维护者或组织者,只是说明性信息
MAINTAINER lixiaobai.com
# 切换工作目录 相当于进入容器内部的指定部署目录 如果工作目录不存在会自动创建
WORKDIR /usr/local/tomcat/webapps
# 拷贝所有文件 第一个docker-app代表当前目录下的docker-app ./docker-app是指/usr/local/tomcat/webapps下的docker-app
ADD docker-app ./docker-app

3、将E:\docker\dockerfile文件拷贝到Linux服务器

在linux服务器的/usr目录下创建image目录,通过Xftp或者WinSCP工具进行文件传输,将dockerfile上传到/usr/image目录下

Xshell终端进入到/usr/image目录验证是否拷贝成功

拷贝成功后,进行下一步

4、执行docker build命令对镜像进行构建

# 构建镜像 -t 用于指定镜像的名字 拥有者/应用名:版本   上下文路径(绝对路径和相对路径都可以)
docker build -t lixiaobai/myapp:1.0 /usr/image/dockerfile
# 相对路径 .代表当前目录
# docker build -t lixiaobai/myapp:1.0 .

通过执行完Dockerfile中的4步构建指令,镜像构建成功

5、创建容器并启动服务

docker run -d -p 80:8080 lixiaobai/myapp:1.0

打开浏览器,测试服务是否可以正常访问

6、进入容器内部查看部署情况

docker exec -it 855f7930476b /bin/bash

补充:

文中镜像构建出涉及到的上下文路径,是指 docker 在构建镜像时,可能要使用到本机的文件,docker build 命令得知这个路径后,会将路径下的所有内容打包。

解析:由于 docker 的运行模式是 C/S。我们本机(linux服务器)是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件(/usr/image/dockerfile)一起打包提供给 docker 引擎使用。

如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。

注意:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值