centos7下制作DockerFile 镜像

news/2024/12/22 14:28:41 标签: docker, 容器, 运维

文章目录

    • 介绍
    • DockerFile 常用命令
    • 示例
      • 1.创建Dockerfile文件
      • 2.构建Dockerfile镜像
      • 3.验证结果
    • 小结

介绍

Dockerfile 是一个文本文件,包含了用于构建 Docker 镜像的所有命令和指令。它定义了镜像的构建过程,包括基础镜像、安装软件、设置环境变量、复制文件、暴露端口等。Dockerfile 使得镜像的构建过程可重复、可移植,并且易于版本控制和协作。

DockerFile 常用命令

  • FROM:指定基础镜像,是 Dockerfile 的第一个指令。
  • RUN:执行命令并提交结果到新的镜像层。
  • COPY:从构建上下文复制新文件或目录到容器中。
  • ADD:类似于 COPY,但可以用于远程 URL 和自动解压压缩文件。
  • CMD:提供容器启动时默认执行的命令。
  • ENTRYPOINT:配置容器启动时执行的命令,通常与 CMD 一起使用。
  • EXPOSE:声明容器运行时监听的端口。
  • ENV:设置环境变量。
  • VOLUME:创建一个可以从容器外部访问的挂载点。
  • WORKDIR:设置工作目录。

更多详细配置可查看官方文档:https://docs.docker.com/reference/dockerfile/

示例

1.创建Dockerfile文件

到指定文件夹下运行命令,创建dockerfile文件

vi Dockerfile

编写文件,注意app.jar 是个测试jar包,可自己创建一个简单的jar包用来测试

# 基础环境
FROM openjdk:17
# 标签
LABEL author=gwh
# 复制
COPY app.jar /app.jar
# 暴漏端口
EXPOSE 8080
# 执行命令
ENTRYPOINT ["java","-jar","/app.jar"]

2.构建Dockerfile镜像

docker build -f Dockerfile -t myapp:v1.0 .

3.验证结果

构建过程中如果没有错误,并且通过 docker images命令能查到myapp 镜像即可。

小结

通过 Dockerfile,你可以轻松地定义和构建 Docker 镜像,从而实现应用程序的容器化部署。Dockerfile 提供了一种标准化的方式来构建和分发应用程序,使得开发、测试和生产环境的一致性得到了保障。


http://www.niftyadmin.cn/n/5795446.html

相关文章

Java web的发展历史

目录 前言: 一.Model I和Model II 1.Model I开发模式 ​编辑 2.Model II开发模式 二. MVC模式 前言: 该篇文章主要介绍了Java web的发展历史,以及MVC相关内容 一.Model I和Model II 1.Model I开发模式 Model1的开发模式是&#xff…

【JavaEE初阶】线程安全问题

本节⽬标 掌握什么是线程不安全及解决思路掌握 synchronized、volatile 关键字 一、多线程带来的的⻛险-线程安全 (重点) 1 观察线程不安全 package Thread.ThreadUnsecurity;public class Unsecurity {public static int count0;public static void main(String[] args) t…

Linux中部署项目

1.下载JDK17 进入 /usr/local 目录,创建 java 文件夹。并将 JDK17 上传到 java 目录下。 上传成功后,通过cd命令进入Java文件夹目录,解压 JDK17 压缩包,命令 unzip zulu17.44.53-ca-jdk17.0.8.1-linux_x64.zip。 如果报错说 u…

详解 Qt WebEngine 模块

Qt WebEngine 模块是 Qt 提供的一个功能强大的模块,用于在 Qt 应用中嵌入和显示现代网页内容。该模块基于 Chromium 引擎,支持丰富的 Web 技术(如 HTML5、CSS3、JavaScript 等),适合需要嵌入网页浏览、Web 应用、JavaS…

在 .NET 5.0 运行 .NET 8.0 教程:使用 ASP.NET Core 创建 Web API

前言 因为我本机安装的是vs2019,所以我在使用vs创建项目的时候,只能选择.NET 5.0,而无法选择.NET 8.0 在网上有看到说用vs2019使用.net 8.0 ,但是感觉不可靠,要用还是安装vs2022吧。 我因为不想要安装vs2022。 但是微…

【原生js案例】让你的移动页面实现自定义的上拉加载和下拉刷新

目前很多前端UI都是自带有上拉加载和下拉刷新功能,按照官网配置去实现即可,比如原生小程序,vantUI等UI框架,都替我们实现了内部功能。 那如何自己来实现一个上拉加载和下拉刷新的功能? 实现效果 不用浏览器的css滚动条,自定义实现滚动效果 自定义实现滚动,添加上拉加载…

对 MYSQL 架构的了解

MySQL 是一种广泛使用的关系型数据库管理系统,其架构主要包括以下几个关键部分: 一、连接层 客户端连接管理:MySQL 服务器可以同时处理多个客户端的连接请求。当客户端应用程序(如使用 Java、Python 等语言编写的程序)…

各个领域的常用编程语言

高级编程语言: Python - 易于学习,广泛应用于Web开发、数据科学、人工智能等。 Java - 用于企业级应用、安卓开发。 C# - 微软开发,主要用于.NET框架。 JavaScript - Web开发的核心语言,也可以用于服务器端编程(Node.j…