Docker中Dockerfile的构建过程

简介: 本章主要对Docker中自定义镜像的一种方式,docker进行简单的介绍。

DockerFile

dockerfile是用来构建docker镜像的文件!命令参数脚本!

构建步骤:

1、编写一个dockerfile文件

2、docker build构建成为一个镜像

3、docker run 运行镜像

4、docker push 发布镜像(DockerHub、阿里云镜像仓库!)

DockerFile的构建过程

基础知识

1、每个保留关键字(指令)都必须是大写字母

2、执行从上到下顺序执行

3、#表示注释

4、每一个指令都会创建提交一个新的镜像层,并提交

dockerfile是面向开发的,我们以后要发布项目。做镜像,就需要编写dockerfile文件,这个文件很简单!

DockerFile:构建文件,定义了一切步骤,源代码

DockerImages:通过DockerFile构建生成的镜像

Docker容器:容器就是镜像运行起来提供服务

DockerFile的指令

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

Docker之Dockerfile文件参数解析 - 知乎

测试

创建一个自己的centos

#编写dockerfile的文件
FROM ubuntu
MAINTAINER ji<jihaoyun2022@1673.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN apt-get update && \
    apt-get install -y vim net-tools && \
    apt-get clean
EXPOSE 80
CMD echo $MYPATH && echo "----end----" && /bin/bash

#通过这个文件构建镜像
docker build -f mydockerfile -t myubuntu:0.1 .  #一定不能忘了最后这一个点

image.png

docker history 镜像id 可以查看镜像的构建过程

CMD 和 ENTRYPOINT区别

CMD               #指定容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT        #指定容器启动的时候要运行的命令,可以追加命令

发布自己的镜像

1、地址:http://hub.docker.com注册自己的账号

2、确定这个账号时刻登录的

3、在我们的服务器上提交自己的镜像

4、登录成功之后

docker login -u 账号名称
docker push 账号名称/镜像名称:版本号


如果提交失败们可以更改版本号
docker tag 镜像id  版本号
相关文章
|
24天前
|
Java Shell Linux
入职必会-开发环境搭建49-Docker必会构建镜像
前面一直都是从Docker仓库中下载镜像然后使用。我们项目中可以通过Dockerfile构建自己的镜像。 Dockerfile是由一系列命令和参数构成的文本文件,Docker可以读取Dockerfile文件并根据Dockerfile文件的描述来构建镜像。Dockerfile文件内容一般分为4部分 ● 基础镜像信息 ● 维护者信息 ● 镜像操作指令 ● 容器启动时执行的指令
|
1天前
|
Docker 容器
在Docker中,Dockerfile有哪些常见指令?
在Docker中,Dockerfile有哪些常见指令?
|
1天前
|
缓存 运维 安全
在Docker中,构建镜像应该遵循哪些原则?
在Docker中,构建镜像应该遵循哪些原则?
|
1天前
|
缓存 Docker 容器
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
在Docker中,docker commit生成的镜像和dockerfile生成镜像有什么区别?
|
2天前
|
缓存 开发者 Docker
Dockerfile是Docker容器化过程中的核心组件,它允许开发者以一种可重复、可移植的方式自动化地构建Docker镜像
【8月更文挑战第19天】Dockerfile是构建Docker镜像的脚本文件,含一系列指令定义镜像构建步骤。每条大写指令后跟至少一个参数,按序执行,每执行一条指令即生成新的镜像层。常用指令包括:FROM指定基础镜像;RUN执行构建命令;EXPOSE开放端口;CMD指定容器启动行为等。优化策略涉及减少镜像层数、选择轻量基础镜像、利用缓存及清理冗余文件。示例:基于Python应用的Dockerfile包括设置工作目录、复制文件、安装依赖等步骤。掌握Dockerfile有助于高效自动化构建镜像,加速应用部署。
12 1
|
10天前
|
运维 监控 持续交付
构建高效自动化运维体系:Ansible与Docker的协同实践
【7月更文挑战第42天】 在当今快速发展的云计算和微服务架构时代,自动化运维已成为提升效率、确保系统稳定性的关键。本文将探讨如何利用Ansible这一强大的自动化工具与Docker容器技术相结合,搭建一个高效、可靠的自动化运维体系。文章首先简述了自动化运维的必要性和Ansible与Docker的基本概念,随后详细介绍了两者结合的优势,并通过实际案例分析展示了如何实现自动化部署、管理和扩展应用服务。通过阅读本文,读者将获得一套可行的自动化运维解决方案,以应对日益复杂的IT环境挑战。
|
12天前
|
存储 缓存 C++
Docker精华篇(三)-如何将 Docker 构建时间减少 40%
Docker精华篇(三)-如何将 Docker 构建时间减少 40%
|
19天前
|
测试技术 持续交付 开发者
使用Docker构建CI/CD流程:从理论到实践
【8月更文挑战第2天】使用Docker构建CI/CD流程,可以显著提高软件开发的效率和质量。通过容器化技术,开发者可以确保环境的一致性,快速部署和测试应用,并减少人为错误。结合合适的CI/CD工具和最佳实践,可以进一步加速软件交付过程,提高用户满意度。希望本文能为开发者在构建基于Docker的CI/CD流程时提供有价值的参考。
|
2天前
|
弹性计算 Java Maven
阿里云云效操作报错合集之在构建Docker镜像时提示拉取次数达到限制,该怎么解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
6天前
|
NoSQL Linux MongoDB
Docker 解析:使用 Dockerfile 自动构建镜像
Docker 解析:使用 Dockerfile 自动构建镜像
15 0