当前位置: 首页 > news >正文

一文读懂Docker之Dockerfile基本使用

目录

一、基本指令

1、FROM指令

2、MAINTAINER指令

3、RUN指令

4、CMD指令

5、ENTRYPOINT指令

6、ENV指令

7、COPY指令

8、EXPOSE指令

9、LABEL指令

10、WORKDIR指令

二、Shell格式和Exec格式的区别

1、Shell格式

2、Exec格式

三、CMD指令详解

步骤一、定义一个Dockerfile

步骤二、构建镜像image

步骤三、演示正常创建容器

步骤四、演示docker run指定了其他命令,CMD命令会被忽略

四、Dockerfile实战

步骤一、创建路径

步骤二、创建app.py文件

步骤三、创建Dockerfile

步骤四、创建镜像image

步骤五、使用新建的image运行容器


注意:

名称必须为Dockerfile

需要保证路径下只有一个Dockerfile文件

一、基本指令

1FROM指令

  • 设置继承镜像

FROM centos:1.0

若本地有标签为centos:1.0的镜像,则直接使用,否则去镜像仓库下载

2MAINTAINER指令

  • 提供作者信息

MAINTAINER BenjunLu (269793494@qq.com)

3、RUN指令

  • 执行命令并创建新的Image Layer

RUN yum -y update && \

yum install -y net-tools && \

yum install -y wget

4、CMD指令

  • 设置容器启动后默认执行的命令和参数
  • 如果docker run指定了其他命令,CMD命令会被忽略
  • 如果定义了多个CMD,只有最后一个会执行

CMD [ "/bin/echo" , "hello docker" ]

5、ENTRYPOINT指令

  • 设置容器启动时运行的命令
  • 让程序以应用程序或者服务的形式运行
  • 不会被忽略,一定会执行

ENTRYPOINT [ "/bin/bash" , "-c" , "echo hello docker" ]

6、ENV指令

  • 设置环境变量

ENV name Docker

设置name变量的值为Docker

7、COPY指令

  • 复制本地文件到image

COPY app.py /app/

注意:路径最后必须带“/”,不然会复制成一个文件

8、EXPOSE指令

  • 暴露容器端口

EXPOSE 27017

暴露容器端口为27017

9、LABEL指令

  • 设置标签

10、WORKDIR指令

  • 设置容器启动后的工作目录

WORKDIR /app

二、Shell格式和Exec格式的区别

1、S

相关文章:

  • 《手机装上DeepSeek R1,开启口袋里的AI超能力》
  • Android Studio:如何用一个store类管理事件、简化管理
  • 详解AbstractQueuedSynchronizer(AQS)源码
  • 考场考试监考系统
  • QT自定义扫描控件,支持任意方位拖动和拖动扫描范围。
  • 数据结构(查找)
  • Python高级语法之urllib
  • Android Studio打包APK
  • 数字化赋能,3D数字博物馆开启沉浸式体验
  • 机器学习(李宏毅)——RNN
  • 第一章 初识LLMs
  • 基于python深度学习遥感影像地物分类与目标识别、分割实践技术应用
  • 从零搭建SpringBoot3+Vue3前后端分离项目基座,中小项目可用
  • Navicat Premium17 连接Oracle出现 “未加载 Oracle库
  • IDEA集成DeepSeek AI助手完整指南
  • 打开多个chrome历史记录
  • JAVA监听器(学习自用)
  • BEV:车轮接地点车辆修正3D框位置精度
  • 【数据结构】(10) 排序算法
  • 设计模式之适配模式是什么?以及在Spring AOP中的拦截器链的使用源码解析。
  • 美英达成贸易协议,美股集体收涨
  • 一热就出汗 VS 热死都不出汗的人,哪个更健康?
  • 国防部:奉劝有关国家不要引狼入室,甘当棋子
  • 央视315晚会曝光“保水虾仁”后,湛江4家涉事企业被罚超800万元
  • 马上评|演出服“穿过就退货”的闹剧不该一再重演
  • 中国公民免签赴马来西亚的停留天数如何计算?使馆明确