(十二)、借助 Dockerfile生成新镜像-以nginx为例

一、常用的 Dockerfile 命令

Dockerfile 是一个文本文件,其中包含了一系列用于构建 Docker 镜像的指令。每个指令都会在镜像上执行特定的操作。下面列出了 Dockerfile 中常用的命令及其用途:

基础命令


FROM
指定基础镜像。所有后续的指令都是在此基础上执行的。
例如:FROM ubuntu:latest
LABEL
用于为镜像添加元数据标签。
例如:LABEL maintainer="yourname@example.com"
RUN
运行任意的 shell 命令。
例如:RUN apt-get update && apt-get install -y nginx
COPY
将本地文件/目录复制到目标容器中。
例如:COPY ./app /app
ADD
类似于 COPY,但是支持从 URL 下载文件并将其添加到构建上下文。
例如:ADD https://example.com/file.tar.gz /
WORKDIR
设置接下来的命令的工作目录。
例如:WORKDIR /app
CMD
设置容器启动时要执行的默认命令。可以被 docker run 命令行参数覆盖。
例如:CMD ["nginx", "-g", "daemon off;"]
ENTRYPOINT
设置容器启动时要执行的不可变的默认命令。与 CMD 一起使用时,CMD 参数会被作为 ENTRYPOINT 的参数传递。
例如:ENTRYPOINT ["python", "app.py"]
EXPOSE
声明容器将监听的端口。
例如:EXPOSE 80
ENV
设置环境变量。
例如:ENV PATH /usr/local/bin:/bin

其他有用命令


ARG
定义构建参数,可以在构建镜像时传递值。
例如:ARG version=1.0
ONBUILD
当使用此镜像作为另一个镜像的基础镜像时触发某些指令。
例如:ONBUILD ADD . /app/src
USER
设置用于执行后续指令的用户。
例如:USER app
VOLUME
创建一个挂载点,用于持久化数据。
例如:VOLUME /data
STOPSIGNAL
设置容器停止时使用的信号。
例如:STOPSIGNAL SIGTERM
HEALTHCHECK
定义健康检查命令,用于确定容器是否处于健康状态。
例如:HEALTHCHECK CMD curl -f http://localhost/ || exit 1
SHELL
指定用于 RUN、CMD、ENTRYPOINT 指令的默认 Shell 形式。
例如:SHELL ["/bin/bash", "-c"]

二、已有镜像+dockerfile

nginx 举例子

1、准备
cd /Users/wujie/Documents/dockerfiles 
➜  dockerfiles mkdir docker-demo
➜  dockerfiles cd docker-demo 
➜  docker-demo vim Dockerfile

2、添加内容
FROM nginx
RUN echo '<h1>This is bestcxx Nginx </h1>' >/usr/share/nginx/html/index.html


3、运行

末尾的点 表示 Dockerfile 文件的相对路径

➜  docker-demo docker build -t nginx:bestcxx .
4、查看
➜  docker-demo docker images
REPOSITORY                                      TAG              IMAGE ID       CREATED         SIZE
nginx                                           bestcxx          f8bdd8444bf8   8 hours ago     187MB

在这里插入图片描述

5、运行

docker run -d -p 92:80 nginx:bestcxx
在这里插入图片描述

6、访问

http://localhost:92/

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值