Dockerfile文件创建详解(实战)

docker文件创建详解

一、Dockerfile 基础知识

FROM		#基础镜像,一切从这里开始构建
MAINTAINER	#镜像是谁写的,姓名+邮箱
RUN			#镜像构建的时候需要运行的命令
ADD			#添加内容,步骤,tomcat镜像,这个tomcat的压缩包!
WORKDIR		#镜像的工作目录	
VOLUME		#挂载的目录
EXPOSE		#暴露端口配置
CMD			#指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT	#指定这个容器启动的时候要运行的命令,可以追加命令
ONBUILD		#当构建一个被继承 Dockerfile 这个时候就会运行ONBUILD 的指令
COPY 		#类似ADD,将我们文件拷贝到镜像中
ENV			#构建的时候设置环境变量

二、实战测试,以tomcat为例

Docker Hub 中 99% 镜像都是从这个基础镜像过来的 FROM scratch,然后配置需要的软件和配置来进行构建的

先准备好需要的两个软件包,创建好文件夹,所有文件都放在一个文件夹下面

jdk-8u11-linux-x64.tar.gz
ADD apache-tomcat-9.0.50.tar.gz

为你们准备好了,搬砖不易,记得点赞!

链接:https://pan.baidu.com/s/14q9DAaSmB_vCQyPjZ70BOg 
提取码:7fej

链接:https://pan.baidu.com/s/1PTweAbwVMPyzVkuJfM6v-g 
提取码:kyuz

创建Dockerfile文件

vim Dockerfile

编写Dockerfile文件

FROM  centos
MAINTAINER orange<745150670@qq.com>
COPY readme.txt /usr/local/readme.txt
ADD jdk-8u11-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.50.tar.gz /usr/local/
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.50
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.50
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.50/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.50/bin/logs/catalina.out

注意:如果权限不足记得开权限

chmod 777 /usr/local/

制作镜像 ,mytomcat为自定义镜像名称,docker会自动寻找dokcerfile

docker build -t mytomcat .

启动容器

docker run -d -p 9100:8080 --name tomcat111 -v /home/tomcat/test:/usr/local/apache-tomcat-9.0.50/webapps/test -v /home/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.50/logs mytomcat

温馨提示云服务器记得开放9100端口

访问

ip:9100

就能看到熟悉的汤姆猫了,成功了记得点赞哦

  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Dockerfile 是用于构建 Docker 镜像的一种文本文件。它包含了一系列的指令,用于描述构建镜像的步骤和配置。 下面是 Dockerfile 的一些常见指令和解释: 1. FROM:指定基础镜像,用于构建当前镜像。例如,可以使用 `FROM ubuntu:latest` 表示基于最新版本的 Ubuntu 镜像构建。 2. RUN:在镜像中执行命令。可以使用多个 RUN 指令来执行多个命令,每个 RUN 指令都会在前一个指令的基础上创建新的镜像层。 3. COPY:将文件或目录从主机复制到镜像中。可以使用 `COPY <src> <dest>` 来指定源文件/目录和目标路径。 4. ADD:类似于 COPY,但功能更强大。它可以复制远程文件、解压缩文件等。尽量使用 COPY 来避免不必要的复杂性。 5. WORKDIR:设置工作目录,后续的命令都会在该目录下执行。可以使用 `WORKDIR /path/to/directory` 来指定工作目录。 6. ENV:设置环境变量。可以使用 `ENV <key>=<value>` 来设置环境变量的键值对。 7. EXPOSE:声明容器运行时需要监听的端口。例如,可以使用 `EXPOSE 80` 来声明容器将监听 80 端口。 8. CMD:指定容器启动时要执行的命令。可以使用多个 CMD 指令,但只有最后一个生效。如果在运行容器时提供了命令,则 CMD 中的命令会被覆盖。 以上是一些常见的 Dockerfile 指令,还有其他指令如 ENTRYPOINT、LABEL 等,可根据具体需求进行使用。编写一个 Dockerfile 可以根据应用的需求进行定制化配置和设置,最终可以通过 Dockerfile 构建出一个可执行的 Docker 镜像。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@我不是大鹏

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值