logo
docker.io/certd/certd:1.46.0
linux/amd64 docker.io jdjn 贡献

certd是一款开源的证书自动化管理工具,基于ACME协议实现,支持从Let's Encrypt等证书颁发机构申请、续期SSL/TLS证书。它支持多种验证方式(如HTTP-01、DNS-01),可自动完成证书的获取与更新,并能将证书部署到多种服务环境中,适用于容器化场景下的证书管理需求。

19
浏览次数
425.87MB
镜像大小
国内镜像
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0
源镜像
docker.io/certd/certd:1.46.0
镜像ID
sha256:818ae5b8ea20a518d34a1f5d4493f529b70cd388a90f3e3d8612f7d95ad35e9d
镜像 TAG
1.46.0
镜像大小
425.87MB
平台架构
linux/amd64
镜像源
docker.io
CMD
node --optimize-for-size ./bootstrap.js
启动入口
docker-entrypoint.sh
工作目录
/app/
OS/平台
linux/amd64
镜像创建
2026-10-28T18:02:13.487527313Z
同步时间
2026-10-30 14:11
浏览量
19 次
贡献者
avatar jdjn
🔌 开放端口 2
7001/tcp 7002/tcp
⚙️ 环境变量 14
KeyValue
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 0
NODE_VERSION=22.23.4 1
YARN_VERSION=1.22.22 2
TERM=xterm 3
LEGO_VERSION=4.30.1 4
LEGO_DOWNLOAD_DIR=/app/tools/lego 5
JKS_GO_VERSION=1.0.3 6
JKS_GO_DOWNLOAD_DIR=/app/tools/jks-go 7
ALIYUN_CLIENT_CONNECT_TIMEOUT=10000 8
ALIYUN_CLIENT_READ_TIMEOUT=20000 9
TZ=Asia/Shanghai 10
NODE_ENV=production 11
certd_release_mode=latest 12
MIDWAY_SERVER_ENV=production 13

Docker拉取命令

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0  docker.io/certd/certd:1.46.0

Containerd拉取命令

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0  docker.io/certd/certd:1.46.0

Shell快速替换命令

sed -i 's#certd/certd:1.46.0#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0#' deployment.yaml

Ansible快速分发-Docker

#ansible k8s -m shell -a 'docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0 && docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0  docker.io/certd/certd:1.46.0'

Ansible快速分发-Containerd

#ansible k8s -m shell -a 'ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0 && ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0  docker.io/certd/certd:1.46.0'

镜像构建历史


# 2026-10-29 02:02:13  0.00B 设置默认要执行的命令
CMD ["node" "--optimize-for-size" "./bootstrap.js"]
                        
# 2026-10-29 02:02:13  48.13KB 复制新文件或目录到容器中
COPY ./patch/ssh2/*.js /app/node_modules/.pnpm/node_modules/ssh2/lib/protocol/ # buildkit
                        
# 2026-10-29 02:02:13  158.56MB 执行命令并创建新的镜像层
RUN |1 base_type=alpine /bin/sh -c pnpm install --production # buildkit
                        
# 2026-10-29 02:02:06  41.26MB 复制新文件或目录到容器中
COPY /workspace/certd-server/ /app/ # buildkit
                        
# 2026-10-29 02:01:40  30.68MB 执行命令并创建新的镜像层
RUN |1 base_type=alpine /bin/sh -c npm install -g pnpm@10.33.4 # buildkit
                        
# 2026-10-29 02:01:37  0.00B 设置环境变量 MIDWAY_SERVER_ENV
ENV MIDWAY_SERVER_ENV=production
                        
# 2026-10-29 02:01:37  0.00B 设置环境变量 certd_release_mode
ENV certd_release_mode=latest
                        
# 2026-10-29 02:01:37  0.00B 设置环境变量 NODE_ENV
ENV NODE_ENV=production
                        
# 2026-10-29 02:01:37  0.00B 设置环境变量 TZ
ENV TZ=Asia/Shanghai
                        
# 2026-10-29 02:01:37  3.23MB 执行命令并创建新的镜像层
RUN |1 base_type=alpine /bin/sh -c ARCH=$(uname -m) &&     if [ "$ARCH" = "x86_64" ]; then         wget -O $JKS_GO_DOWNLOAD_DIR/jks-go_linux_amd64 https://github.com/certd/jks-go/releases/download/v${JKS_GO_VERSION}/jks-go_linux_amd64 &&         chmod +x $JKS_GO_DOWNLOAD_DIR/jks-go_linux_amd64 &&         ln -s $JKS_GO_DOWNLOAD_DIR/jks-go_linux_amd64 /usr/local/bin/jks-go;     elif [ "$ARCH" = "aarch64" ]; then         wget -O $JKS_GO_DOWNLOAD_DIR/jks-go_linux_arm64 https://github.com/certd/jks-go/releases/download/v${JKS_GO_VERSION}/jks-go_linux_arm64 &&         chmod +x $JKS_GO_DOWNLOAD_DIR/jks-go_linux_arm64 &&         ln -s $JKS_GO_DOWNLOAD_DIR/jks-go_linux_arm64 /usr/local/bin/jks-go;     elif [ "$ARCH" = "armv7l" ]; then         wget -O $JKS_GO_DOWNLOAD_DIR/jks-go_linux_arm_armv7 https://github.com/certd/jks-go/releases/download/v${JKS_GO_VERSION}/jks-go_linux_arm_armv7 &&         chmod +x $JKS_GO_DOWNLOAD_DIR/jks-go_linux_arm_armv7 &&         ln -s $JKS_GO_DOWNLOAD_DIR/jks-go_linux_arm_armv7 /usr/local/bin/jks-go;     else         echo "Unsupported architecture: $ARCH";     fi # buildkit
                        
# 2026-10-29 02:01:37  0.00B 执行命令并创建新的镜像层
RUN |1 base_type=alpine /bin/sh -c mkdir -p $JKS_GO_DOWNLOAD_DIR # buildkit
                        
# 2026-10-29 02:01:36  19.26MB 执行命令并创建新的镜像层
RUN |1 base_type=alpine /bin/sh -c ARCH=$(uname -m) &&     if [ "$ARCH" = "x86_64" ]; then         wget -O $LEGO_DOWNLOAD_DIR/lego_v${LEGO_VERSION}_linux_amd64.tar.gz https://github.com/go-acme/lego/releases/download/v${LEGO_VERSION}/lego_v${LEGO_VERSION}_linux_amd64.tar.gz;     elif [ "$ARCH" = "aarch64" ]; then         wget -O $LEGO_DOWNLOAD_DIR/lego_v${LEGO_VERSION}_linux_arm64.tar.gz https://github.com/go-acme/lego/releases/download/v${LEGO_VERSION}/lego_v${LEGO_VERSION}_linux_arm64.tar.gz;     else         echo "Unsupported architecture: $ARCH";     fi # buildkit
                        
# 2026-10-29 02:01:36  0.00B 执行命令并创建新的镜像层
RUN |1 base_type=alpine /bin/sh -c mkdir -p $LEGO_DOWNLOAD_DIR # buildkit
                        
# 2026-10-29 02:01:35  0.00B 设置环境变量 ALIYUN_CLIENT_READ_TIMEOUT
ENV ALIYUN_CLIENT_READ_TIMEOUT=20000
                        
# 2026-10-29 02:01:35  0.00B 设置环境变量 ALIYUN_CLIENT_CONNECT_TIMEOUT
ENV ALIYUN_CLIENT_CONNECT_TIMEOUT=10000
                        
# 2026-10-29 02:01:35  0.00B 设置环境变量 JKS_GO_DOWNLOAD_DIR
ENV JKS_GO_DOWNLOAD_DIR=/app/tools/jks-go
                        
# 2026-10-29 02:01:35  0.00B 设置环境变量 JKS_GO_VERSION
ENV JKS_GO_VERSION=1.0.3
                        
# 2026-10-29 02:01:35  0.00B 设置环境变量 LEGO_DOWNLOAD_DIR
ENV LEGO_DOWNLOAD_DIR=/app/tools/lego
                        
# 2026-10-29 02:01:35  0.00B 设置环境变量 LEGO_VERSION
ENV LEGO_VERSION=4.30.1
                        
# 2026-10-29 02:01:35  0.00B 设置环境变量 TERM
ENV TERM=xterm
                        
# 2026-10-29 02:01:35  0.00B 设置工作目录为/app/
WORKDIR /app/
                        
# 2026-10-29 02:01:35  4.60MB 执行命令并创建新的镜像层
RUN |1 base_type=alpine /bin/sh -c if [ -f /etc/debian_version ]; then         apt-get update         && apt-get install -y --no-install-recommends             ca-certificates             wget             openssl             netcat-openbsd             iputils-ping             dnsutils             iproute2         && apt-get clean         && rm -rf /var/lib/apt/lists/*;     elif [ -f /etc/alpine-release ]; then         apk add --no-cache openssl wget ca-certificates;     else         echo "Unsupported base image"; exit 1;     fi # buildkit
                        
# 2026-10-29 02:01:35  0.00B 定义构建参数
ARG base_type=alpine
                        
# 2026-10-29 02:01:35  0.00B 声明容器运行时监听的端口
EXPOSE [7002/tcp]
                        
# 2026-10-29 02:01:35  0.00B 声明容器运行时监听的端口
EXPOSE [7001/tcp]
                        
# 2026-10-22 06:58:51  0.00B 设置默认要执行的命令
CMD ["node"]
                        
# 2026-10-22 06:58:51  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
                        
# 2026-10-22 06:58:51  388.00B 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
                        
# 2026-10-22 06:58:51  5.37MB 执行命令并创建新的镜像层
RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar   && export GNUPGHOME="$(mktemp -d)"   && for key in     6A010C5166006599AA17F08146C2130DFD2497F5   ; do     { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ||     { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ;   done   && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz"   && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc"   && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz   && gpgconf --kill all   && rm -rf "$GNUPGHOME"   && mkdir -p /opt   && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/   && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn   && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg   && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz   && apk del .build-deps-yarn   && yarn --version   && rm -rf /tmp/* # buildkit
                        
# 2026-10-22 06:58:47  0.00B 设置环境变量 YARN_VERSION
ENV YARN_VERSION=1.22.22
                        
# 2026-10-22 06:58:47  154.43MB 执行命令并创建新的镜像层
RUN /bin/sh -c addgroup -g 1000 node     && adduser -u 1000 -G node -s /bin/sh -D node     && apk add --no-cache         libatomic         libstdc++     && apk add --no-cache --virtual .build-deps         gnupg         curl     && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)"       && case "${alpineArch##*-}" in         x86_64) ARCH='x64' OPENSSL_ARCH=linux-x86_64;;         aarch64) OPENSSL_ARCH=linux-aarch64;;         arm*) OPENSSL_ARCH=linux-armv4;;         s390x) OPENSSL_ARCH=linux-s390x;;         *) echo "unsupported architecture"; exit 1 ;;       esac     && export GNUPGHOME="$(mktemp -d)"     && set -ex     && for key in       5BE8A3F6C8A5C01D106C0AD820B1A390B168D356       DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7       CC68F5A3106FF448322E48ED27F5E38D5B0A215F       890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4       C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C       108F52B48DB57BB0CC439B2997B01419BD92F80A       655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD       A363A499291CBBC940DD62E41F10027AF002F8B0     ; do         { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ||         { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ;     done   && if [ "$ARCH" = "x64" ]; then     curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"     && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc     && gpgconf --kill all     && rm -rf "$GNUPGHOME"     && grep " node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\$" SHASUMS256.txt | sha256sum -c -     && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner     && rm "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt     && ln -s /usr/local/bin/node /usr/local/bin/nodejs;   else     echo "Building from source"     && apk add --no-cache --virtual .build-deps-full         binutils-gold         g++         gcc         libgcc         linux-headers         make         python3         py-setuptools     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz"     && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"     && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc     && gpgconf --kill all     && rm -rf "$GNUPGHOME"     && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c -     && tar -xf "node-v$NODE_VERSION.tar.xz"     && cd "node-v$NODE_VERSION"     && ./configure     && make -j$(getconf _NPROCESSORS_ONLN) V=     && make install     && apk del .build-deps-full     && cd ..     && rm -Rf "node-v$NODE_VERSION"     && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt;   fi   && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \;   && apk del .build-deps   && node --version   && npm --version   && rm -rf /tmp/* # buildkit
                        
# 2026-10-22 06:58:47  0.00B 设置环境变量 NODE_VERSION
ENV NODE_VERSION=22.23.4
                        
# 2026-10-22 06:37:22  0.00B 设置默认要执行的命令
CMD ["/bin/sh"]
                        
# 2026-10-22 06:37:22  8.43MB 复制文件或目录到容器中
ADD alpine-minirootfs-3.24.3-x86_64.tar.gz / # buildkit
                        
                    

镜像信息

{
    "Id": "sha256:818ae5b8ea20a518d34a1f5d4493f529b70cd388a90f3e3d8612f7d95ad35e9d",
    "RepoTags": [
        "certd/certd:1.46.0",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd:1.46.0"
    ],
    "RepoDigests": [
        "certd/certd@sha256:deb1e6e431d4b4cb4bd28fd0837016f2fdc9f1d4ff3d35b5907377800646b8d4",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/certd/certd@sha256:f2947f12bc5cb58c6491005d0b3f6fe2509bc22e2679661aa8607b51034caa17"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2026-10-28T18:02:13.487527313Z",
    "Container": "",
    "ContainerConfig": null,
    "DockerVersion": "",
    "Author": "",
    "Config": {
        "Hostname": "",
        "Domainname": "",
        "User": "",
        "AttachStdin": false,
        "AttachStdout": false,
        "AttachStderr": false,
        "ExposedPorts": {
            "7001/tcp": {},
            "7002/tcp": {}
        },
        "Tty": false,
        "OpenStdin": false,
        "StdinOnce": false,
        "Env": [
            "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "NODE_VERSION=22.23.4",
            "YARN_VERSION=1.22.22",
            "TERM=xterm",
            "LEGO_VERSION=4.30.1",
            "LEGO_DOWNLOAD_DIR=/app/tools/lego",
            "JKS_GO_VERSION=1.0.3",
            "JKS_GO_DOWNLOAD_DIR=/app/tools/jks-go",
            "ALIYUN_CLIENT_CONNECT_TIMEOUT=10000",
            "ALIYUN_CLIENT_READ_TIMEOUT=20000",
            "TZ=Asia/Shanghai",
            "NODE_ENV=production",
            "certd_release_mode=latest",
            "MIDWAY_SERVER_ENV=production"
        ],
        "Cmd": [
            "node",
            "--optimize-for-size",
            "./bootstrap.js"
        ],
        "ArgsEscaped": true,
        "Image": "",
        "Volumes": null,
        "WorkingDir": "/app/",
        "Entrypoint": [
            "docker-entrypoint.sh"
        ],
        "OnBuild": null,
        "Labels": null
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 425865351,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/bff4a6cf192c009d28826aa4dcbff24ed871ace166b61958522b6f321a96e915/diff:/var/lib/docker/overlay2/f4de2ed11c067bb24df7484f4f83dbb2d7ba3771243896cbcffb703a624ba6d9/diff:/var/lib/docker/overlay2/674ecbdb447f8ec84d4172ad2e8d802569d906542043bf13878fe73caf00dc4f/diff:/var/lib/docker/overlay2/23b3cf863944f8a7f72e2232cb85bfe397b9050a3407529cd7ef3eb536b51b93/diff:/var/lib/docker/overlay2/40efceed9ae07f40486cba75287b412837f4bcb5954fc0b8c4bf1390db35be6f/diff:/var/lib/docker/overlay2/b290c3a268a8b06b1d81c6e6b635739fbefa7ebc3f1815bf03dc56c193b58a22/diff:/var/lib/docker/overlay2/37121765ec396e6359a73b1e6663a61d625b4eeb2898c3c7818fa36e942f4008/diff:/var/lib/docker/overlay2/db9bd6172b4f73e95a5e9656080bb20a32f6e7ba8f1b365c0ea0a7f6f1b35933/diff:/var/lib/docker/overlay2/e1e88a594722ee654e3a00ee2050e2a9e9499be66532a21df1d4c2a11fec6009/diff:/var/lib/docker/overlay2/60b519334065b468879ae029714817010ca81f62d689aadea8d8f4eb1a9a6fe5/diff:/var/lib/docker/overlay2/be091b05af559757f287f8aa6249ca69bf1c6953e3252606a0f044fc4663d70d/diff:/var/lib/docker/overlay2/47cd102fde288b4530b83dc106d38793d2fd4fd43e9ce2aaea165f24438899db/diff:/var/lib/docker/overlay2/d5164844b0320141b3dea060c03c7289317582de4aa76c273d105b1ad536f3ef/diff",
            "MergedDir": "/var/lib/docker/overlay2/917f7e10657211e8007aebdc3d667eafefb2c104e93873945ca2f053e0e347c8/merged",
            "UpperDir": "/var/lib/docker/overlay2/917f7e10657211e8007aebdc3d667eafefb2c104e93873945ca2f053e0e347c8/diff",
            "WorkDir": "/var/lib/docker/overlay2/917f7e10657211e8007aebdc3d667eafefb2c104e93873945ca2f053e0e347c8/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:75c137aedfb2760f88629236cb7b797630aed0c3d91d626d1d1bb694878fc2ba",
            "sha256:30ad2d1597a9c97acebab3677fb203383cecf282375bb030d114b01f98a1adb4",
            "sha256:7f78e22f72fbece43b0a1236ad7b98579faaa411ce7445c98d8f6bfc7f06b1bc",
            "sha256:92ef3b67b69bfad75b1f2a2df8279578ae15f7282b28f5d29bb4a85709285ecd",
            "sha256:1c7a7baa9d60636ad72bcd558fcb053937590a3ecebca3d377f3c6dcd107fe14",
            "sha256:6884e4b2a4f87fb534d947bb902c499162421c17b4bd7ed30b6ca18c52cdaa9a",
            "sha256:9116d527e73b0b04d6a2b21ba67e4d873c10b6c55b3f9b7e3113b53eb31f4c4c",
            "sha256:23aecd19925d2189403f2e8a7bb45faa2aa9587089d5eeaaeb20bd20c9126a77",
            "sha256:9bd3522a7ac3c4573ea8cbb19b74b1b11414eff744c0844cea59b701edb7cd8c",
            "sha256:4eda1badb43d684eaf8f5f4b7ebaba93e5b77757dc7a5db04372d84a1c97e5af",
            "sha256:a270da38611ed84aa97b91da2fe4a266d565ba0285b5d0beac45300f96fbf861",
            "sha256:0d9aed8242627b6aaa7238f2c4a3a4d56d8f44bd19aaf69f1d80018694fbff3d",
            "sha256:ed939e3143eb64c3715d6f52079216866ddf3cd0bc8dd8fcb4d28dc64813150b",
            "sha256:8169ac1743022b29f75aa4e5c8c066cc850f175f0eccac2cec853ccce9762b17"
        ]
    },
    "Metadata": {
        "LastTagTime": "2026-10-30T14:11:47.860282742+08:00"
    }
}

更多版本

docker.io/certd/certd:1.44.1

linux/amd64 docker.io427.19MB2026-09-03 10:47
105

docker.io/certd/certd:1.46.0

linux/amd64 docker.io425.87MB2026-10-30 14:11
18
检测到您正在使用广告拦截插件,本站为公益站点,依赖广告维持运转 🙏 查看如何关闭 ×