22 04 2021

前言

本文主要介绍Dockerfile及其使用。

Dockerfile

1、什么是Dockerfile?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

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

2、使用Dockerfile构建镜像

构建镜像命令格式:

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

下面以tomcat为例,自定义构建一个镜像:

1、创建一个文件夹,名为my-dockerfile

2、找了个之前做的静态网站,放到my-dockerfile/docker-web目录下

3、在my-dockerfile目录下创建Dockerfile文件,内容如下:

  1. # 设置基准镜像
  2. FROM tomcat:jdk8-corretto
  3. # 设置机构标识
  4. MAINTAINER zwqh.top
  5. # cd /usr/local/tomcat/webapps
  6. # 切换工作目录,不存在则创建
  7. WORKDIR /usr/local/tomcat/webapps
  8. # 复制目录下的所有文件到容器目录
  9. ADD docker-web ./docker-web

4、在linux usr目录下创建image目录作为镜像目录,把my-dockerfile文件夹上传至该目录

5、构建镜像

  1. #运行命令
  2. docker build -t zwqh.top/mywebapp:1.0 /usr/image/my-dockerfile
  3. #运行结果
  4. Sending build context to Docker daemon 28.97MB
  5. Step 1/4 : FROM tomcat:jdk8-corretto
  6. ---> 79b38376f3de
  7. Step 2/4 : MAINTAINER zwqh.top
  8. ---> Running in 13c52044c758
  9. Removing intermediate container 13c52044c758
  10. ---> 817712d51c7e
  11. Step 3/4 : WORKDIR /usr/local/tomcat/webapps
  12. ---> Running in 6575a667ae48
  13. Removing intermediate container 6575a667ae48
  14. ---> 65d94934c688
  15. Step 4/4 : ADD docker-web ./docker-web
  16. ---> 80946ac76b0d
  17. Successfully built 80946ac76b0d
  18. Successfully tagged zwqh.top/mywebapp:1.0
  19. #此时镜像构建成功~

至此一个简单的镜像构建过程就结束了~

6、查看镜像

  1. #运行命令
  2. docker images
  3. #运行结果
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. zwqh.top/mywebapp 1.0 80946ac76b0d 7 minutes ago 405MB
  6. tomcat jdk8-corretto 79b38376f3de 10 days ago 376MB
  7. #同时在镜像列表里已经看到我们构建的镜像

7、创建应用并启动

  1. docker run -d -p 9900:8080 zwqh.top/mywebapp:1.0

此时即可直接浏览 http://8.136.139.149:9900/docker-web/index.html

注:如果端口无法访问,记得配置服务器安全组

8、查看容器内部

  1. #查看容器
  2. docker ps
  3. #结果
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 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
  6. #进入容器内部
  7. docker exec -it 28db0ba7f33e /bin/bash
  8. #查看目录
  9. ls
  10. #结果
  11. docker-web
  12. #进入目录
  13. cd docker-web
  14. ls
  15. #结果
  16. case css images index.html js layui
  17. # 可以看到我们的docker-web目录都被拷贝过来了

总结

本文主要通过tomcat为示例自定义构建一个镜像,方便快速部署。

延伸阅读
  1. Windows下IIS搭建Ftp服务器
  2. Nginx开启Gzip压缩提升页面加载速度
  3. Nginx安装及配置(linux)
  4. Docker(10):Docker-Compose简介及安装
  5. Docker(5):docker镜像分层(layer)
发表评论