47-Dockerfile-VOLUME/EXPOSE指令

简介: 47-Dockerfile-VOLUME/EXPOSE指令

前言

  • 本篇来学习下Dockerfile中的VOLUME/EXPOSE指令

VOLUME

作用

  • 创建一个匿名数据卷挂载点

说明

  • 用 VOLUME 声明了卷,那么以后对于卷内容的修改会被丢弃,所以,一定要在 volume 声明之前修改内容

格式

# JSON数组 必须使用双引号,不能使用单引号
VOLUME ["/var/log/"]
# 直接写
VOLUME /var/log
# 空格分割
VOLUME /var/log /var/db

使用示例

  • 新建dockerfile
FROM ubuntu
# 挂载 容器指定的文件夹,如果不存在,会自动创建。
# 指定了 VOLUME 指令后,即使启动容器的时候没有指定 -v 参数,也会自动进行匿名卷挂载。
VOLUME [ "/demo","/app" ]
  • 制作镜像并运行容器
# 制作镜像
docker build -t test --force-rm --no-cache .
# 运行容器
docker run -it -d test
  • 查看挂载卷
# 查看运行容器
docker ps 
# 查看容器信息
docker inspect 容器id

EXPOSE

作用

格式

EXPOSE <port> [<port>/<protocol>...]

说明:

  • Docker 容器在运行的时候在指定的网络端口上进行侦听,可以指定端口是侦听 TCP 还是 UDP ,如果没有指定,默认就是 TCP
  • 指令实际上不会发布端口,它充当了构建镜像人员和运行容器人员之间的一种文档,即打算发布那些端口的信息,要在运行容器时映射端口,需要使用 docker run -p xxx:xxx 或 docker run -P 的命令
  • 如果 docker run,指定了 --net=host 宿主机网络模式,容器中 EXPOSE 指令暴露的端口会直接使用宿主机对应的端口,不存在映射关系

使用示例

  • 新建dockerfile
FROM nginx
EXPOSE 80
  • 制作镜像并运行
docker build -t test --force-rm --no-cache .
docker run -it -d -network=host test
  • 查看容器信息
docker ps
docker inspect 容器id

  • 访问nginx
curl 127.0.0.1:80

相关文章
|
消息中间件 运维 Java
RabbitMQ快速入门(简单收发消息)
RabbitMQ快速入门(简单收发消息)
243 0
RabbitMQ快速入门(简单收发消息)
|
JSON API 数据格式
Postman 导入导出API 的用法
大家好,我是阿萨。昨天学习了如何使用Postman里的collections?关于API 脚本的最基本场景我们就学习完成了。 日常工作中会碰到各种各样的情况需要导入或者导出API。
1422 0
Postman 导入导出API 的用法
|
应用服务中间件 网络安全 nginx
Nginx配置Websocket
wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。
|
5月前
|
前端开发 安全 Go
开箱即用的GO后台管理系统 Kratos Admin - 如何上传文件
Kratos Admin 是一个开箱即用的 Go 语言后台管理系统,支持通过 MinIO 实现高效文件上传。系统提供两种上传方式:一是通过预签名 URL 直接上传至 MinIO,减轻服务压力;二是通过 Kratos 微服务中转上传。前者推荐使用,具备安全、高效、易扩展等优点。文章详细介绍了两种方式的实现代码及前后端交互流程,并附有完整项目源码供参考。
232 1
|
数据安全/隐私保护
新年快乐鞭炮祝福html网页源码
新年快乐鞭炮祝福html网页源码,动态点燃鞭炮动画祝福新年快乐,带新年背景音乐,无加密完整可用,源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面。
379 0
新年快乐鞭炮祝福html网页源码
|
12月前
|
存储 算法 安全
深入理解Linux内核的内存管理机制
本文旨在深入探讨Linux操作系统内核的内存管理机制,包括其设计理念、实现方式以及优化策略。通过详细分析Linux内核如何处理物理内存和虚拟内存,揭示了其在高效利用系统资源方面的卓越性能。文章还讨论了内存管理中的关键概念如分页、交换空间和内存映射等,并解释了这些机制如何协同工作以提供稳定可靠的内存服务。此外,本文也探讨了最新的Linux版本中引入的一些内存管理改进,以及它们对系统性能的影响。
|
存储 安全 Linux
Dockerfile 中的 volume 与 docker run -v 的区别
Dockerfile 中的 volume 与 docker run -v 的区别
2794 0
|
Prometheus Kubernetes 监控
在K8S中,Pod处于OOM状态如何排查?
在K8S中,Pod处于OOM状态如何排查?
|
运维 Java Serverless
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
1665 0
|
SQL 消息中间件 关系型数据库
实时计算 Flink版产品使用问题之元数据血缘可以通过什么来获取
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。