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  版本号
相关文章
|
28天前
|
运维 监控 Docker
构建高效微服务架构:从理论到实践构建高效自动化运维体系:Ansible与Docker的完美融合
【5月更文挑战第31天】 在当今软件开发的世界中,微服务架构已经成为了实现可伸缩、灵活且容错的系统的关键策略。本文将深入探讨如何从零开始构建一个高效的微服务系统,涵盖从概念理解、设计原则到具体实施步骤。我们将重点讨论微服务设计的最佳实践、常用的技术栈选择、以及如何克服常见的挑战,包括服务划分、数据一致性、服务发现和网络通信等。通过实际案例分析,本文旨在为开发者提供一套实用的指南,帮助他们构建出既健壮又易于维护的微服务系统。
|
29天前
|
Kubernetes 开发者 Docker
构建高效微服务架构:Docker与Kubernetes的协同应用
【5月更文挑战第30天】 在当今软件开发领域,微服务架构已成为实现系统模块化、提升可维护性及扩展性的关键策略。本文深入探讨了如何通过Docker容器化技术和Kubernetes集群管理,共同构建一个既高效又可靠的后端微服务环境。我们将剖析Docker和Kubernetes的核心功能,以及它们如何相辅相成,支撑起现代化的云原生应用程序部署和管理。文章还将提供具体实践案例,帮助开发者理解将理论应用于实际开发过程中的步骤和考虑因素。
|
30天前
|
Kubernetes Cloud Native 开发者
构建高效的云原生应用:Docker与Kubernetes的完美搭档
【5月更文挑战第29天】 在现代软件开发领域,"云原生"这一术语已经成为高效、可扩展和弹性的代名词。本文将深入探讨如何通过Docker容器化技术和Kubernetes集群管理工具实现云原生应用的构建和管理。我们将剖析Docker的核心原理,揭示其轻量级和易于部署的特点,并进一步探索Kubernetes如何为这些容器提供编排,保证应用的高可用性与自动扩缩容。文章不仅讨论了二者的技术细节,还提供了实践案例,帮助开发者理解并运用这些技术构建和维护自己的云原生应用。
|
1天前
|
Java Maven Docker
Spring Boot 构建 Docker 镜像多模式使用详解
Spring Boot 构建 Docker 镜像多模式使用详解
|
8天前
|
Java Docker 容器
使用 Spring Boot 构建 Docker 镜像并进行多模式部署
使用 Spring Boot 构建 Docker 镜像并进行多模式部署
27 2
|
29天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的实践
【5月更文挑战第30天】 在当今的快速迭代和持续部署的软件发布环境中,自动化运维的重要性愈发凸显。本文旨在探讨如何利用容器化技术与微服务架构,特别是Docker和Kubernetes,来构建一个高效、可伸缩且自愈的自动化运维体系。通过详细分析容器化的优势及Kubernetes的集群管理机制,文章将提供一个清晰的指南,帮助读者理解并实现现代软件部署的最佳实践。
|
1月前
|
运维 监控 安全
构建高效自动化运维体系:Ansible与Docker的完美结合
【5月更文挑战第28天】 在当今快速演变的IT环境中,自动化已成为维护系统稳定性与提高效率的关键。本文将探讨如何通过结合Ansible和Docker技术构建一个高效的自动化运维体系。文章不仅介绍两者的基本概念,还详细阐述了集成实践,以及通过真实案例分析其优势和潜在挑战,旨在为读者提供一套可行的解决方案,以优化他们的DevOps流程。
|
10天前
|
缓存 Linux 开发工具
win10下docker desktop:使用dockerfile基于CentOS:8创建可以使用vim的镜像
win10下docker desktop:使用dockerfile基于CentOS:8创建可以使用vim的镜像
48 0
|
14天前
|
缓存 Linux Docker
docker 跨平台构建镜像
docker 跨平台构建镜像
26 0
|
14天前
|
Linux Docker Python
【docker】Mac M1 构建 x64 linux镜像
【docker】Mac M1 构建 x64 linux镜像
27 0