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

Dockerfile基本原理

### Dockerfile基本原理

Dockerfile 是一个文本文件,其中包含了所有必要的命令来构建一个有效的 Docker 镜像。这个文件是用来自动化构建过程的脚本,它告诉 Docker 如何从基础镜像开始,安装所需的软件包,设置环境变量,以及配置启动的应用程序等。

### 操作步骤

1. **准备基础镜像**:
   - Dockerfile 总是以 `FROM` 命令开始,该命令指定了用于创建新镜像的基础镜像。

2. **设置工作目录**:
   - 使用 `WORKDIR` 指令定义了后续命令的工作目录。

3. **复制文件到镜像**:
   - 使用 `COPY` 或 `ADD` 命令将本地文件系统中的文件复制到新的镜像中。

4. **执行命令**:
   - 使用 `RUN` 命令执行任意的合法 shell 命令来安装依赖项或配置服务。

5. **环境变量设置**:
   - 使用 `ENV` 命令设置环境变量。

6. **暴露端口**:
   - 使用 `EXPOSE` 指令告诉 Docker 容器将监听哪个端口上的连接。

7. **定义默认命令**:
   - 使用 `CMD` 或 `ENTRYPOINT` 指定当容器启动时运行的默认命令。

8. **构建镜像**:
   - 在 Dockerfile 所在目录下运行 `docker build -t <image_name> .` 命令来构建镜像。

9. **运行容器**:
   - 使用 `docker run -p <host_port>:<container_port> <image_name>` 启动一个容器。

### 示例:创建一个简单的 Web 服务器

假设我们要创建一个基于 Nginx 的简单 Web 服务器,这里是一个可能的 Dockerfile:

```Dockerfile
# 使用官方 Nginx 镜像作为基础镜像
FROM nginx:latest

# 设置工作目录
WORKDIR /usr/share/nginx/html

# 复制本地 HTML 文件到容器内的工作目录
COPY index.html .

# 设置环境变量
ENV MY_VAR="Hello from Docker!"

# 暴露 HTTP 默认端口
EXPOSE 80

# 定义容器启动后执行的默认命令
CMD ["nginx", "-g", "daemon off;"]
```

#### 创建 `index.html`

```html
<!DOCTYPE html>
<html>
<head>
    <title>Welcome to Nginx!</title>
</head>
<body>
    <h1>Hello, World! ${MY_VAR}</h1>
</body>
</html>


http://www.kler.cn/a/458487.html

相关文章:

  • ruoyi 分页 查询超出后还有数据; Mybatis-Plus 分页 超出后还有数据
  • 基于微信小程序的校园点餐平台的设计与实现(源码+SQL+LW+部署讲解)
  • LabVIEW冷却风机性能测试系统
  • springcloud各个组件介绍
  • VScode 格式化代码空格记录
  • 在Linux的世界中怎么玩转定时器任务
  • 解决springdoc-openapi-ui(Swagger3)跳转默认界面问题
  • 关于 PCB线路板细节锣槽问题 的解决方法
  • c# WaitSleepJoin状态的线程如何自动恢复
  • ArcGIS计算矢量要素集中每一个面的遥感影像平均值、最大值等统计指标
  • 改变HTML元素的方式有哪些?如何在HTML中添加/替换或删除元素?
  • 微服务保护-sentinel
  • 大模型-Ollama使用相关的笔记
  • 网络:常用的以太网PHY芯片
  • Shader数学基础16-齐次除法
  • sql group by 多个字段例子
  • 《2023-2024网络安全产业发展核心洞察与趋势预测》
  • 使用PyTorch进行自动微分
  • Effective C++ 条款 20:宁以 pass-by-reference-to-const 替换 pass-by-value
  • C++ 设计模式:单例模式(Singleton Pattern)
  • 如何使用爬虫工具Selenium
  • 腾讯PHP经典面试题(附答案)
  • zookeeper+kafka的windows下安装
  • 【服务器项目部署】⭐️将本地项目部署到服务器!
  • 鸿蒙项目云捐助第二十七讲云捐助项目首页分类导航的联动效果
  • go下载依赖提示连接失败