009-第一个Dockfile

本文介绍如何通过Dockerfile构建一个简单的静态网页服务镜像。从创建目录到编写Dockerfile,再到构建镜像的过程都进行了详细的说明。镜像基于Ubuntu 14.04,安装了Nginx并设置了默认的欢迎页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作

# 创建一个目录
mkdir ~/static_web

# 进入目录
cd ~/static_web

# 创建Dockfile
tocch Dockfile

编写Dockfile

# Version: 0.0.1
FROM ubuntu:14.04
MAINTAINER JAMES "JAMES@sina.com"
RUN rm -rf /var/lib/apt/lists/* && apt-get -y update && apt-get -y install nginx
RUN echo 'Hi, I am in your container' > /usr/share/nginx/html/index.html
EXPOSE 80

简单解释

# Version: 0.0.1    --> 注释
FROM ubuntu:14.04   --> 基于哪个镜像构建
MAINTAINER JAMES "JAMES@sina.com"   --> 镜像创建者的相关信息
RUN rm -rf /var/lib/apt/lists/* && apt-get -y update && apt-get -y install nginx    --> 更新APT库,并安装nginx
RUN echo 'Hi, I am in your container' > /usr/share/nginx/html/index.html    --> 创建主页
EXPOSE 80   --> 告诉Docker,容器内的应用程序将使用的端口

构建镜像

# -t:设置仓库与镜像名称
# .:告诉Docker在当前目录查找Dockerfile
sudo docker build -t jamtur01/nginx .

构建镜像时设置标签

# 如果不指定标签,Docker将自动为镜像设置一个latest标签
sudo docker build -t jamtur01/nginx:v1 .
### Dockerfile 使用教程 #### 基本概念 Dockerfile 是一种用于定义容器化应用程序的脚本文件,它包含了创建镜像所需的一系列指令。通过这些指令可以自动化构建过程并生成可运行的应用程序环境。 #### 阿里云 EDAS 的 Dockerfile 示例 对于阿里云 EDAS 提供的示例项目,可以通过以下方式来构建和运行基于该服务的容器实例。进入 `examples` 文件夹之后执行如下命令完成镜像制作: ```bash cd examples docker build -t my-edas-image -f Dockerfile.hsf . ``` 此操作会依据指定路径下的自定义配置文件(即 `Dockerfile.hsf`),生成名为 `my-edas-image` 的新镜像[^1]。 #### 核心命令解析 以下是几个常见的 Dockerfile 指令及其功能说明: - **FROM**: 定义基础镜像,所有其他层都建立在此之上。 ```dockerfile FROM ubuntu:latest ``` - **RUN**: 执行 shell 或者 exec 形式的命令,在构建阶段生效。 ```dockerfile RUN apt-get update && apt-get install -y python3-pip ``` - **CMD/ENTRYPOINT**: 设置容器启动后的默认行为;区别在于后者更倾向于固定入口而前者允许参数覆盖。 ```dockerfile CMD ["echo","Hello World"] ENTRYPOINT ["python3", "app.py"] ``` - **COPY & ADD**: 将本地文件复制到容器内的特定位置,其中ADD支持更多资源类型比如远程URL链接下载等。 ```dockerfile COPY requirements.txt /tmp/ ADD https://example.com/file.tar.gz / ``` 有关上述各条目更加详尽的内容以及最佳实践指南,请参阅专门针对不同编程语言生态系统的文档资料[^2]。 #### 实际案例分享 下面给出一个简单的 Nginx Web Server 构建例子作为演示用途: ```dockerfile # Base Image Declaration FROM nginx:alpine # Copy Custom Configuration If Needed COPY ./custom.conf /etc/nginx/conf.d/default.conf # Expose Port To Host Machine For Accessing Service Outside Container Environment. EXPOSE 80 # Start Command When Launch Instance Automatically By Default Behavior Of NGINX Official Repository Images. CMD ["nginx", "-g", "daemon off;"] ``` 要按照这个模板去制造专属版本号标记为 v1 的 web server,则只需简单调用一次build语句即可实现目标设定好的流程动作序列: ```bash docker build -t nginx:v1 . ``` 注意最后那个点字符代表当前工作目录的位置信息传递给后台处理机制理解成源码所在处所指代含义[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值