Fix Docker Hub rate limits, DCT timeline, image tags, etcd and Alertmanager

This commit is contained in:
yeasy
2026-04-27 01:15:52 +00:00
parent e406ed9185
commit e416a1be7e
7 changed files with 20 additions and 20 deletions
+1 -1
View File
@@ -255,7 +255,7 @@ someuser/myapp # ⚠️ 需要评估
#### 镜像签名 #### 镜像签名
当前更推荐使用 Sigstore / Notation 体系进行镜像签名与验证`Docker Content Trust (DCT)` 2025 8 8 开始停用官方 Docker 镜像已停止 DCT 签名2028 3 31 日将完全删除此功能不建议作为新项目方案 当前更推荐使用 Sigstore / Notation 体系进行镜像签名与验证`Docker Content Trust (DCT)` 进入弃用阶段2025 8 8 起最早的 DCT 签名证书开始过期2025 9 30 日起不能在新 Registry 启用 DCT2028 3 31 日将完全删除此功能不建议作为新项目方案
> 注意Cosign 默认会把签名推送回镜像所在仓库请使用你有推送权限的镜像地址 > 注意Cosign 默认会把签名推送回镜像所在仓库请使用你有推送权限的镜像地址
+4 -4
View File
@@ -67,15 +67,15 @@ $ docker push username/myapp:v1
#### 镜像拉取限制 #### 镜像拉取限制
Docker Hub 对不同类型用户实施拉取速率限制2025 4 月起更新 Docker Hub 对不同类型用户实施拉取速率限制基于 6 小时周期
| 用户类型 | 限制 | | 用户类型 | 限制 |
|---------|------| |---------|------|
| **匿名用户** (未登录) | 每小时 10 次请求 | | **匿名用户** (未登录) | 6 小时 100 次请求 |
| **免费账户** (已登录) | 每小时 100 次请求 | | **免费账户** (已登录) | 6 小时 200 次请求 |
| **Pro/Team/Business 账户** | 无限制公平使用政策 | | **Pro/Team/Business 账户** | 无限制公平使用政策 |
> **注意**2025 4 月前的旧限制为匿名用户每 6 小时 100 免费账户每 6 小时 200 新政策大幅收紧了匿名拉取额度建议在 CI/CD 环境中始终配置 `docker login` > **注意** 2025 4 月起所有付费订阅用户享有无限制拉取额度匿名用户和免费账户的限制保持不变建议在 CI/CD 环境中始终配置 `docker login` 以获得更高的拉取额度
#### 滥用限流 #### 滥用限流
+3 -3
View File
@@ -68,7 +68,7 @@ RUN go get -d -v github.com/go-sql-driver/mysql \
编写 `Dockerfile.copy` 文件 编写 `Dockerfile.copy` 文件
```docker ```docker
FROM alpine:latest FROM alpine:3
RUN apk --no-cache add ca-certificates RUN apk --no-cache add ca-certificates
@@ -131,7 +131,7 @@ COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM alpine:latest as prod FROM alpine:3 as prod
RUN apk --no-cache add ca-certificates RUN apk --no-cache add ca-certificates
@@ -176,5 +176,5 @@ $ docker build --target builder -t username/imagename:tag .
上面例子中我们使用 `COPY --from=0 /go/src/github.com/go/helloworld/app .` 从上一阶段的镜像中复制文件我们也可以复制任意镜像中的文件 上面例子中我们使用 `COPY --from=0 /go/src/github.com/go/helloworld/app .` 从上一阶段的镜像中复制文件我们也可以复制任意镜像中的文件
```docker ```docker
COPY --from=nginx:latest /etc/nginx/nginx.conf /nginx.conf COPY --from=nginx:1.25-alpine /etc/nginx/nginx.conf /nginx.conf
``` ```
@@ -61,7 +61,7 @@ server {
```docker ```docker
# 注:node 镜像推荐使用具体的版本标签(如 node:20-alpine # 注:node 镜像推荐使用具体的版本标签(如 node:20-alpine
FROM node:alpine as frontend FROM node:20-alpine as frontend
COPY package.json /app/ COPY package.json /app/
@@ -83,7 +83,7 @@ RUN set -x ; cd /app \
```docker ```docker
# 注:composer 镜像推荐使用具体的版本标签(如 composer:2.x # 注:composer 镜像推荐使用具体的版本标签(如 composer:2.x
FROM composer as composer FROM composer:2 as composer
COPY database/ /app/database/ COPY database/ /app/database/
COPY composer.json composer.lock /app/ COPY composer.json composer.lock /app/
@@ -129,7 +129,7 @@ RUN set -x ; cd ${LARAVEL_PATH} \
```docker ```docker
# 注:nginx 镜像推荐使用具体的版本标签(如 nginx:1.25-alpine # 注:nginx 镜像推荐使用具体的版本标签(如 nginx:1.25-alpine
FROM nginx:alpine as nginx FROM nginx:1.25-alpine as nginx
ARG LARAVEL_PATH=/app/laravel ARG LARAVEL_PATH=/app/laravel
@@ -180,7 +180,7 @@ $ docker run -dit --rm --network=laravel -p 8080:80 my/nginx
```docker ```docker
# 注:生产环境推荐使用具体的版本标签,如 node:20-alpine、composer:2.x、php:8.3-fpm-alpine、nginx:1.25-alpine # 注:生产环境推荐使用具体的版本标签,如 node:20-alpine、composer:2.x、php:8.3-fpm-alpine、nginx:1.25-alpine
FROM node:alpine as frontend FROM node:20-alpine as frontend
COPY package.json /app/ COPY package.json /app/
@@ -195,7 +195,7 @@ RUN set -x ; cd /app \
&& mkdir -p public \ && mkdir -p public \
&& npm run production && npm run production
FROM composer as composer FROM composer:2 as composer
COPY database/ /app/database/ COPY database/ /app/database/
COPY composer.json composer.lock /app/ COPY composer.json composer.lock /app/
@@ -229,7 +229,7 @@ RUN set -x ; cd ${LARAVEL_PATH} \
&& chmod -R 777 storage \ && chmod -R 777 storage \
&& php artisan package:discover && php artisan package:discover
FROM nginx:alpine as nginx FROM nginx:1.25-alpine as nginx
ARG LARAVEL_PATH=/app/laravel ARG LARAVEL_PATH=/app/laravel
@@ -1,4 +1,4 @@
FROM node:alpine as frontend FROM node:20-alpine as frontend
COPY package.json /app/ COPY package.json /app/
@@ -13,7 +13,7 @@ RUN set -x ; cd /app \
&& mkdir -p public \ && mkdir -p public \
&& npm run production && npm run production
FROM composer as composer FROM composer:2 as composer
COPY database/ /app/database/ COPY database/ /app/database/
COPY composer.json /app/ COPY composer.json /app/
@@ -47,7 +47,7 @@ RUN set -x ; cd ${LARAVEL_PATH} \
&& chmod -R 777 storage \ && chmod -R 777 storage \
&& php artisan package:discover && php artisan package:discover
FROM nginx:alpine as nginx FROM nginx:1.25-alpine as nginx
ARG LARAVEL_PATH=/app/laravel ARG LARAVEL_PATH=/app/laravel
+2 -2
View File
@@ -51,7 +51,7 @@ $ ETCDCTL_API=3 etcdctl member list
$ ETCDCTL_API=3 etcdctl put testkey "hello world" $ ETCDCTL_API=3 etcdctl put testkey "hello world"
OK OK
$ etcdctl get testkey $ ETCDCTL_API=3 etcdctl get testkey
testkey testkey
hello world hello world
``` ```
@@ -96,5 +96,5 @@ $ brew install etcd
$ etcd $ etcd
$ etcdctl member list $ ETCDCTL_API=3 etcdctl member list
``` ```
+1 -1
View File
@@ -245,7 +245,7 @@ receivers:
```yaml ```yaml
alertmanager: alertmanager:
image: prom/alertmanager:v0.27.0 image: prom/alertmanager:v0.32.0
volumes: volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml - ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
ports: ports: