
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/Tob1as/docker-tools
Tools collection
All Images are Multiarch (AMD64, ARM64 and ARM) builds and in the following Container Registries:
quay.io/tobi312/tools:<TAG>Tools/Tags:
adminerazcopyc-mqtt-forwarderdnsmasqeasy-rsafiglethtpasswdkeepalivedmqtt-forwarderphp-fpm-exporterpostgres-exporterprometheus-mosquitto-exporterprometheus-mqtt-transportsquidstatic-curlstatic-jqstatic-xqstatic-yqstatic-kubectlstatic-helmstatic-nginxstatic-nginx-unprivilegedstatic-ssh-tools
toolboxtoolbox-extendedadminerevo - Use adminer!pgadmin4 - Use now offical Docker build!FIGlet is a computer program that generates text banners.
This Docker Image is based on latest AlpineLinux, see https://github.com/Tob1as/docker-tools/blob/main/figlet.multiarch.alpine.Dockerfile for more details.
shdocker run --rm --name figlet -it tobi312/tools:figlet 'Hello :D'
Output:
_ _ _ _ ____ | | | | ___| | | ___ _| _ \ | |_| |/ _ \ | |/ _ \ (_) | | | | _ | __/ | | (_) | _| |_| | |_| |_|\___|_|_|\___/ (_)____/
htpasswd create username password information of a web server.
This Docker Image is based on latest AlpineLinux, see https://github.com/Tob1as/docker-tools/blob/main/htpasswd.multiarch.alpine.Dockerfile for more details.
shdocker run --rm -it tobi312/tools:htpasswd -bn username passw0rd
Output:
username:$apr1$Sk1pFYwB$ivgO9asJe4WkalyC7L5TV0
Toolbox with git, wget, curl, nano, netcat and more.
This Docker Image is based on latest AlpineLinux, see https://github.com/Tob1as/docker-tools/blob/main/toolbox.multiarch.alpine.Dockerfile and https://github.com/Tob1as/docker-tools/blob/main/toolbox_extended.multiarch.alpine.Dockerfile for more details.
sh# start docker run --rm --name toolbox -d tobi312/tools:toolbox # exec docker exec -it toolbox sh # use (example: check port is open) nc -zv -w 3 <HOST> <PORT>
ymlversion: '2.4' services: toolbox: image: tobi312/tools:toolbox #image: tobi312/tools:toolbox-extended container_name: toolbox restart: unless-stopped #user: "1000:1000" # format: "${UID}:${GID}" #entrypoint: [ "/bin/sh", "-c", "--" ] #command: [ "while true; do sleep 60; done;" ]
and then:
sh# start docker-compose -f toolbox.yml up -d # exec (you can use sh or bash) docker-compose -f toolbox.yml exec toolbox sh # or docker exec -it toolbox sh # use (example: check port is open) nc -zv -w 3 <HOST> <PORT>
yamlapiVersion: v1 kind: Pod metadata: name: toolbox namespace: default spec: containers: - name: toolbox image: tobi312/tools:toolbox resources: requests: memory: "128Mi" cpu: "0.1" limits: memory: "512Mi" cpu: "0.5"
and then:
sh# start kubectl apply -f toolbox.yaml # exec kubectl exec -it pod/toolbox -- sh # use (example: check port is open) nc -zv -w 3 <HOST> <PORT>
Or https://github.com/Tob1as/docker-kubernetes-collection/blob/master/examples_k8s/toolbox.yaml for Deployment.
dnsmasq is a lightweight dns and dhcp server.
yamlversion: "2.4" services: dnsmasq: image: tobi312/tools:dnsmasq container_name: dnsmasq restart: unless-stopped ports: - 53:53/tcp # DNS - 53:53/udp # DNS - 67:67/udp # DHCP Server #- 68:68/udp # DHCP Client #- 69:69/udp # TFTP volumes: - ./dnsmasq/:/etc/dnsmasq.d/:rw # add your config files in this folder #network_mode: host cap_add: - 'NET_ADMIN'
https://github.com/Open***/easy-rsa is a CLI utility to build and manage a PKI CA.
sh# help docker run --rm --name easy-rsa -it tobi312/tools:easy-rsa-3.1.7 help
sh# Preparation mkdir ~/data_easyrsa # IMPORANT: Execute all Command from this/next Folder !! cd ~/data_easyrsa # root-ca # init pki docker run --rm --name easy-rsa -v ${PWD}:/easyrsa:rw -it tobi312/tools:easy-rsa-3.1.7 init-pki # download "vars"-File curl -sL https://github.com/OpenVPN/easy-rsa/raw/master/easyrsa3/vars.example -o ./pki/vars # now EDIT "vars"-File in ./pki # and then build ca: docker run --rm --name easy-rsa -v ${PWD}:/easyrsa:rw -it tobi312/tools:easy-rsa-3.1.7 build-ca # Server Cert (repeat this steps for other domains) # create server cert request docker run --rm --name easy-rsa -v ${PWD}:/easyrsa:rw -it tobi312/tools:easy-rsa-3.1.7 --subject-alt-name="DNS:example.com,DNS:*.example.com,IP:192.168.1.100" gen-req example-com nopass # sign server cert docker run --rm --name easy-rsa -v ${PWD}:/easyrsa:rw -it tobi312/tools:easy-rsa-3.1.7 sign-req server example-com # check cert openssl verify -verbose -CAfile ${PWD}/pki/ca.crt ${PWD}/pki/issued/example-com.crt openssl x509 -noout -text -in ${PWD}/pki/issued/example-com.crt
Preparation:
shmkdir ~/data_easyrsa # IMPORANT: Execute all Command from this/next Folder !! cd ~/data_easyrsa
root-ca:
sh# init pki (need "soft" to write in mounted volume subpath "/easyrsa/root-ca" instead "/easyrsa/pki") docker run --rm --name easy-rsa -e EASYRSA_PKI="/easyrsa/root-ca" -v ${PWD}/root-ca/:/easyrsa/root-ca:rw -it tobi312/tools:easy-rsa-3.1.7 init-pki soft # ASK: Confirm removal: yes # download "vars"-File curl -sL https://github.com/OpenVPN/easy-rsa/raw/master/easyrsa3/vars.example -o ${PWD}/root-ca/vars # now EDIT "vars"-File in ./root-ca # and then build ca: docker run --rm --name easy-rsa -e EASYRSA_PKI="/easyrsa/root-ca" -v ${PWD}/root-ca/:/easyrsa/root-ca:rw -it tobi312/tools:easy-rsa-3.1.7 build-ca # ASK: Enter New CA Key Passphrase: # ASK: Common Name (eg: your user, host, or server name) [Easy-RSA CA]: My Organization CA # check/show content of root-ca "ca.crt" file openssl x509 -noout -text -in ${PWD}/root-ca/ca.crt
intermediate-ca = subca:
sh# init pki (need "soft" to write in mounted volume subpath "/easyrsa/intermediate-ca" instead "/easyrsa/pki") docker run --rm --name easy-rsa -e EASYRSA_PKI="/easyrsa/intermediate-ca" -v ${PWD}/intermediate-ca/:/easyrsa/intermediate-ca:rw -it tobi312/tools:easy-rsa-3.1.7 init-pki soft # ASK: Confirm removal: yes # download "vars"-File curl -sL https://github.com/OpenVPN/easy-rsa/raw/master/easyrsa3/vars.example -o ${PWD}/intermediate-ca/vars # now EDIT "vars"-File in ./intermediate-ca # and then build subca: docker run --rm --name easy-rsa -e EASYRSA_PKI="/easyrsa/intermediate-ca" -v ${PWD}/intermediate-ca/:/easyrsa/intermediate-ca:rw -it tobi312/tools:easy-rsa-3.1.7 build-ca subca # ASK: Enter New CA Key Passphrase: # ASK: Common Name (eg: your user, host, or server name) [Easy-RSA CA]: My Organization Sub-CA # import subca in ca (Note: switch to root-ca): docker run --rm --name easy-rsa -e EASYRSA_PKI="/easyrsa/root-ca" -v ${PWD}/root-ca/:/easyrsa/root-ca:rw -v ${PWD}/intermediate-ca/:/easyrsa/intermediate-ca:rw -it tobi312/tools:easy-rsa-3.1.7 import-req /easyrsa/intermediate-ca/reqs/ca.req intermediate-ca # sign subca with ca (Note: switch to root-ca) docker run --rm --name easy-rsa -e EASYRSA_PKI="/easyrsa/root-ca" -v ${PWD}/root-ca/:/easyrsa/root-ca:rw -it tobi312/tools:easy-rsa-3.1.7 sign-req ca intermediate-ca # ASK: Confirm request details: yes # ASK: Enter pass phrase for /easyrsa/root-ca/private/ca.key: # copy sign subca from root-ca to intermediate-ca folder docker run --rm --name easy-rsa --entrypoint="" -v ${PWD}/root-ca/:/easyrsa/root-ca:rw -v ${PWD}/intermediate-ca/:/easyrsa/intermediate-ca:rw -it tobi312/tools:easy-rsa-3.1.7 cp /easyrsa/root-ca/issued/intermediate-ca.crt /easyrsa/intermediate-ca/ca.crt # or cp ${PWD}/root-ca/issued/intermediate-ca.crt ${PWD}/intermediate-ca/ca.crt # verify subca from ca openssl verify -verbose -CAfile ${PWD}/root-ca/ca.crt ${PWD}/intermediate-ca/ca.crt # check/show content of intermediate-ca "ca.crt" file openssl x509 -noout -text -in ${PWD}/intermediate-ca/ca.crt # copy subca and ca in one file called fullca.crt cat ${PWD}/intermediate-ca/ca.crt ${PWD}/root-ca/ca.crt > ${PWD}/fullca.crt
Server Cert ... for Domain example.com:
sh# create server cert request docker run --rm --name easy-rsa -e EASYRSA_PKI="/easyrsa/intermediate-ca" -v ${PWD}/intermediate-ca/:/easyrsa/intermediate-ca:rw -it tobi312/tools:easy-rsa-3.1.7 --subject-alt-name="DNS:example.com,DNS:*.example.com,IP:192.168.1.100" gen-req example-com nopass # ASK: Common Name (eg: your user, host, or server name) [example-com]:example.com # sign server cert docker run --rm --name easy-rsa -e EASYRSA_PKI="/easyrsa/intermediate-ca" -v ${PWD}/intermediate-ca/:/easyrsa/intermediate-ca:rw -it tobi312/tools:easy-rsa-3.1.7 sign-req server example-com # ASK: Confirm request details: yes # ASK: Enter pass phrase for /easyrsa/intermediate-ca/private/ca.key: # verify cert from subca and ca openssl verify -verbose -CAfile ${PWD}/fullca.crt ${PWD}/intermediate-ca/issued/example-com.crt # check/show content of cert file openssl x509 -noout -text -in ${PWD}/intermediate-ca/issued/example-com.crt # repeat this steps for other domains
-e EASYRSA_PKI="/easyrsa/root-ca" you can use in command --pki-dir=/easyrsa/root-catar cvpzf backup_easyrsa_$(date '+%Y%m%d-%H%M').tar.gz . in data_easyrsa-Folder!docker run --rm --name easy-rsa --entrypoint="" -it tobi312/tools:easy-rsa-3.1.7 bash/usr/local/share/ca-certificates/ and execute dpkg-reconfigure -f noninteractive ca-certificates您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务