阿里云镜像加速

容器镜像服务 (aliyun.com)

# 加速地址,具体请到阿里云控制台复制
https://uhv7z0g.mirror.aliyuncs.com 
#Centos 配置
#针对Docker客户端版本大于 1.10.0 的用户
#您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://5uhv7z0g.mirror.aliyuncs.com"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

Dockerfile

# FROM
# The FROM instruction initializes a new build stage and 
# sets the Base Image for subsequent instructions. 
FROM [--platform=<platform>] <image> [AS <name>]
FROM [--platform=<platform>] <image>[:<tag>] [AS <name>]
FROM [--platform=<platform>] <image>[@<digest>] [AS <name>]

**From指令初始化一个新的构建阶段,并为后续之类设置基础镜像。**因此,有效的 Dockerfile 必须以 FROM 指令开头。

  • FROM 可以在单个 Dockerfile 中多次出现,以创建多个镜像或将一个构建阶段用作对另一构建阶段的依赖。
  • 可以选择在 FROM 指令中添加 AS 名称,从而为新的构建阶段指定名称。该名称可以在后续的 FROMCOPY --from = <name> 指令中使用,以引用此阶段构建的镜像。

例如:

# build-state
FROM node:lts-alpine as build-stage
# 使用WORKDIR指令来指定工作目录(或者称为当前目录)
# 以后各层操作的当前目录就是为WORKDIR指令指定的目录,如果该目录不存在,WORKDIR指令会自动创建该目录。
# 类似于cd命令。
# 为后续的RUN、CMD、ENTRYPOINT等指令指定工作目录。
WORKDIR /app
COPY package*.json ./
RUN npm install
# 本地计算机的当前工作目录(Dockerfile所在目录)复制到容器的当前工作目录中
COPY . .
RUN npm run build

# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
# EXPOSE指令通知Docker容器在运行时侦听指定的端口
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]