DockerFile 快速入门
DockerFile是什么?
Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。
Dockerfile和Docker镜像的关系就像是java源代码和执行文件class的关系。
使用DockerFile构建镜像的步骤。
编写DockerFile文件—> docker build —> docker run
长什么样?
编写DockerFile内容的注意事项
- 每条保留字指令都必须为大写字母,而且后面必须跟随至少一个参数。
- 指令从上到下,顺序执行
- '#'表示注释
- 每条指令都会创建一个新的镜像层,并对镜像进行提交。
Docker执行DockerFile的大致流程
- docker从基础镜像运行一个容器
- 执行一条指令并对容器做出修改
- 执行类似
docker commit
的操作,提交一个新的镜像层 - docker在基于新提交的镜像运行一个新的容器
- 执行DockerFile中的下一条指令,直到所有指令执行完成
DockerFile的保留字指令
FROM #基础镜像,当前新的镜像是基于那个镜像
MAINTTAINER # 维护镜像人的姓名和邮箱(作者)
RUN # 容器构建时需要执行的命令
EXPOSE # 当前容器对外暴露的端口号
WORKDIR # 指定在创建容器后,终端默认登录进来的工作目录
ENV # 用来在构建镜像过程中设置环境变量
ADD # 复制一个文件并解压缩
COPY #单纯复制一个文件
VOLUME #容器数据卷,用于数据保存和持久化工作
CMD # 指定一个容器启动后,运行的命令(可以有多个CMD指令,但是只有最后一个生效。CMD会被docker run之后的参数替换)
ENTRYPOINT #指定一个容器启动后,运行的命令
ONBUILD #类似于触发器,当构建一个被继承的Dockerfile时运行命令,父镜像在被子镜像继承后,父镜像的onbuild会被触发
案例
1.编写Dockerfile
FROM centos #基础镜像
MAINTTAINER zjj<1161493927@qq.com> #作者和邮箱
ENV MYDIVPATH /usr/local # 环境变量
WORKDIR $MYDIVPATH #使用定义的环境变量作为终端登录进来的默认目录
RUN yum -y install vim #执行的命令
RUN yum -y install net-tools #执行的命令
EXPOSE 81 #对外暴露的端口
CMD echo "success" # 指定一个容器启动后,运行的命令
CMD /bin/bash # 指定一个容器启动后,运行的命令
- 通过Dockerfile构建Docker镜像
docker build -f 构建的DockerFile文件位置 -t 生成的镜像文件名 . #最后有个点别忘了,代表当前目录
#例子
docker build -f /mydocker/Dockerfile -t zjj/mycentos:1.1 .
- 查看
docker images
- 运行
docker run -it 新镜像名:版本号
- 查看镜像的变更历史
docker history 镜像名或镜像ID
转载请注明出处,该博客只为交流学习。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了