本文主要介绍 Dockerfile 及其使用。
Dockerfile
1、什么是 Dockerfile?
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Docker 通过读取 Dockerfile 中的指令按步自动生成镜像。
2、使用 Dockerfile 构建镜像
构建镜像命令格式:
docker build -t 机构/镜像名<:tags> Dockerfile目录
下面以 tomcat 为例,自定义构建一个镜像:
1、创建一个文件夹,名为 my-dockerfile
2、找了个之前做的静态网站,放到 my-dockerfile/docker-web 目录下
3、在 my-dockerfile 目录下创建 Dockerfile 文件,内容如下:
# 设置基准镜像
FROM tomcat:jdk8-corretto
# 设置机构标识
MAINTAINER zwqh.top
# cd /usr/local/tomcat/webapps
# 切换工作目录,不存在则创建
WORKDIR /usr/local/tomcat/webapps
# 复制目录下的所有文件到容器目录
ADD docker-web ./docker-web
4、在 linux usr 目录下创建 image 目录作为镜像目录,把 my-dockerfile 文件夹上传至该目录
5、构建镜像
#运行命令
docker build -t zwqh.top/mywebapp:1.0 /usr/image/my-dockerfile
#运行结果
Sending build context to Docker daemon 28.97MB
Step 1/4 : FROM tomcat:jdk8-corretto
---> 79b38376f3de
Step 2/4 : MAINTAINER zwqh.top
---> Running in 13c52044c758
Removing intermediate container 13c52044c758
---> 817712d51c7e
Step 3/4 : WORKDIR /usr/local/tomcat/webapps
---> Running in 6575a667ae48
Removing intermediate container 6575a667ae48
---> 65d94934c688
Step 4/4 : ADD docker-web ./docker-web
---> 80946ac76b0d
Successfully built 80946ac76b0d
Successfully tagged zwqh.top/mywebapp:1.0
#此时镜像构建成功~
至此一个简单的镜像构建过程就结束了~
6、查看镜像
#运行命令
docker images
#运行结果
REPOSITORY TAG IMAGE ID CREATED SIZE
zwqh.top/mywebapp 1.0 80946ac76b0d 7 minutes ago 405MB
tomcat jdk8-corretto 79b38376f3de 10 days ago 376MB
#同时在镜像列表里已经看到我们构建的镜像
7、创建应用并启动
docker run -d -p 9900:8080 zwqh.top/mywebapp:1.0
此时即可直接浏览 http://8.136.139.149:9900/docker-web/index.html
注:如果端口无法访问,记得配置服务器安全组
8、查看容器内部
#查看容器
docker ps
#结果
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
28db0ba7f33e zwqh.top/mywebapp:1.0 "catalina.sh run" 7 minutes ago Up 7 minutes 0.0.0.0:9900->8080/tcp, :::9900->8080/tcp clever_meitner
#进入容器内部
docker exec -it 28db0ba7f33e /bin/bash
#查看目录
ls
#结果
docker-web
#进入目录
cd docker-web
ls
#结果
case css images index.html js layui
# 可以看到我们的docker-web目录都被拷贝过来了
总结
本文主要通过 tomcat 为示例自定义构建一个镜像,方便快速部署。
评论区