Docker容器--Dockerfile

本文详细解读Dockerfile,教你如何编写CentOS基础镜像,添加Java和Tomcat,配置环境并发布到DockerHub和阿里云。实践部分包括制作Tomcat镜像并进行部署,适用于IT专业人士和初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是 Dockerfile?

Dockerfile是一个创建镜像所有命令的文本文件, 包含了一条条指令和说明, 每条指令构建一层, 通过docker build命令,根据Dockerfile的内容构建镜像,因此每一条指令的内容, 就是描述该层如何构建.有了Dockefile, 就可以制定自己的docker镜像规则,只需要在Dockerfile上添加或者修改指令, 就可生成docker 镜像.
通俗的讲dockerfile就是为了满足我们日常生产环境中各式各样的需求而编写的一个文本文件。
在这里插入图片描述

Dockerfile的构建步骤:

1.编写一个dockerfile 文件
2.docker build 构建成为一个镜像
3.docker run 运行镜像
4.docker push 发布镜像
在这里插入图片描述

使用 Dockerfile 定制镜像
这里仅讲解如何运行 Dockerfile 文件来定制一个镜像,具体 Dockerfile 文件内指令详解,将在下一节中介绍,这里你得知道构建的流程。

Dockerfile命令解析

FORM

基础镜像,当前新镜像是基于哪个镜像的,例如我要建立一个centos的镜像,我要拉取父镜像 FROM centos

MAINTAINER

镜像的作者,一般是姓名+邮箱地址

RUN

容器构建时运行的命令

EXPOSE

暴露新建的镜像对外服务的端口号

WORKDIR

创建容器后的工作目录,如果没有指定的话,默认为容器的根目录

ENV

设置镜像的环境变量,后续可以在其他指令中引用,例如定义ENV url = ‘一串很长的链接地址 ’,在后续其他命令中可以直接通过$url 引用该变量值

ADD

将宿主机的文件拷贝到镜像目录下并且解压文件(如果文件是为压缩类型的一般采用add命令)

COPY

将宿主机的文件拷贝到镜像目录下

VOLUME

容器数据卷,用于保存数据,持久化数据和共享数据

CMD

指定一个容器启动时需要运行的命令,dockerFile可以有多个CMD命令,但是只有最后一个才会生效

ENTRYPOINT

指定一个容器启动时需要启动的命令,当在docker run 后面加CMD 和 ENTRYPOINT命令时,前者会被覆盖,后者则是追加

ONBUILD

类似于触发器,当这个被构建的镜像被另外的子镜像继承的时候,就会触发这个命令
在这里插入图片描述

Dockerfile部署实战

制作tomcat镜像

下载apache-tomcat-8.5.16.tar.gz,jdk-8u221-linux-x64.tar.gz两个安装tomcat必要的压缩包,将其放置在有dockerfile文件的tomcat目录下(根据自己定制)。

FROM centos
MAINTAINER boonya <boonya@sina.com>
RUN yum -y install vim
RUN yum -y install net-tools
# now add java and tomcat support in the container 
ADD jdk-8u221-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.16.tar.gz /usr/local/
# configuration of java and tomcat ENV 
ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.16
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.16
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
# container listener port 
EXPOSE 8080
# startup web application services by self 
CMD /usr/local/apache-tomcat-8.5.16/bin/catalina.sh run

创建镜像

docker build -t mytomcat .

Successfully built d02031863791
Successfully tagged mytomcat:latest

启动容器

docker run -d -p 9090:8080 --name mytomcat -v /home/tomcat/:/usr/local/apache-tomcat-8.5.16/webapps diy2tomcat

测试

curl localhost:9090

打开浏览器访问
在这里插入图片描述
发布婚纱项目
由于做了卷挂载,我们直接在本地编写项目就可以发布了,将自己的网页放入/home/tomcat/hs测试
在这里插入图片描述

发布镜像到DockerHub和阿里云服务

发布镜像到DockerHub
首先在docker官方网站注册自己的账号

登陆账号
[root@localhost ~]# docker login -u 账号
输入密码
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/con
fig.json.Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential
s-store
Login Succeeded
将自己的镜像打包
docker tag d0549ebe86ba yuanyang134218/tomcat02:1.0
docker push yuanyang134218/tomcat02

下图表示成功
在这里插入图片描述

发布镜像到阿里云服务
1.登录阿里云
2.找到容器镜像服务
在这里插入图片描述

3.创建命名空间
在这里插入图片描述
在这里插入图片描述

4.创建容器镜像仓库
在这里插入图片描述
5.创建完后点到自己的仓库,提交下载镜像阿里云里面都有详细的教程
在这里插入图片描述
付出不在于多少,只要值得就好。加油!陌生人。所有的努力都是为了更好的相遇。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值