amd64/docker注意: 这是Docker官方镜像的amd64架构构建的“每架构”仓库——更多信息请参见官方镜像文档中的“非amd64架构?”和官方镜像FAQ中的“Git中的镜像源已更改,该怎么办?”。
维护者:
Tianon(Docker项目成员)
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
Dockerfile链接(参见FAQ中的“‘Shared’和‘Simple’标签有什么区别?”)
29.0.0-rc.1-cli, 29-rc-cli, rc-cli, 29.0.0-rc.1-cli-alpine3.22
29.0.0-rc.1-dind, 29-rc-dind, rc-dind, 29.0.0-rc.1-dind-alpine3.22, 29.0.0-rc.1, 29-rc, rc, 29.0.0-rc.1-alpine3.22
29.0.0-rc.1-dind-rootless, 29-rc-dind-rootless, rc-dind-rootless
28.5.1-cli, 28.5-cli, 28-cli, cli, 28.5.1-cli-alpine3.22
28.5.1-dind, 28.5-dind, 28-dind, dind, 28.5.1-dind-alpine3.22, 28.5.1, 28.5, 28, latest, 28.5.1-alpine3.22
28.5.1-dind-rootless, 28.5-dind-rootless, 28-dind-rootless, dind-rootless
问题反馈地址:
[***]
支持的架构: (更多信息)
amd64, arm32v6, arm32v7, arm64v8, windows-amd64
镜像 artifact 详情:
repo-info 仓库的 repos/docker/ 目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/docker 标签
official-images 仓库的 library/docker 文件 (历史记录)
本描述的来源:
docs 仓库的 docker/ 目录 (历史记录)
尽管通常不推荐在Docker内部运行Docker,但存在一些合法使用场景,例如Docker本身的开发。
Docker是一个开源项目,通过在Linux、Mac OS和Windows上提供操作系统级虚拟化的额外抽象层和自动化,实现应用程序在软件容器中的自动化部署。
***.org/wiki/Docker_(software)
!logo
在运行Docker-in-Docker之前,请务必阅读Jérôme Petazzoni关于该主题的优秀博客文章《不要将Docker-in-Docker用于CI》,其中他概述了这样做的一些优缺点(以及可能遇到的一些棘手问题)。
如果您仍然确定需要Docker-in-Docker,而不仅仅是访问容器主机的Docker服务器,请继续阅读。
。如果您使用--network=host、共享网络命名空间(如Kubernetes Pod中),或容器可通过网络访问(包括通过其网关接口在dind实例内启动的容器),这可能存在安全问题(例如可能导致对主机系统的访问)。建议通过设置变量为适当值(如-e DOCKER_TLS_CERTDIR=/certs)启用TLS。在19.03+版本中,默认启用此行为。
启用时,Docker守护进程将以--host=tcp://0.0.0.0:2376 --tlsverify ...启动;禁用时,将以--host=tcp://0.0.0.0:2375启动。
在DOCKER_TLS_CERTDIR指定的目录中,入口点脚本将创建/使用三个目录:
ca:证书颁发机构文件(cert.pem、key.pem)server:dockerd(守护进程)证书文件(cert.pem、ca.pem、key.pem)client:docker(客户端)证书文件(cert.pem、ca.pem、key.pem;适用于DOCKER_CERT_PATH)为了从“客户端”容器使用此功能,至少需要共享$DOCKER_TLS_CERTDIR目录的client子目录(如以下示例所示)。
要禁用此镜像行为,只需覆盖容器命令或入口点以直接运行dockerd(... amd64/docker:dind dockerd ...或... --entrypoint dockerd amd64/docker:dind ...)。
console$ docker run --privileged --name some-docker -d \ --network some-network --network-alias docker \ -e DOCKER_TLS_CERTDIR=/certs \ -v some-docker-certs-ca:/certs/ca \ -v some-docker-certs-client:/certs/client \ amd64/docker:dind
注意: --privileged是Docker-in-Docker正常运行所必需的,但应谨慎使用,因为它提供了对主机环境的完全访问权限,如Docker文档相关部分所述。
console$ docker run --rm --network some-network \ -e DOCKER_TLS_CERTDIR=/certs \ -v some-docker-certs-client:/certs/client:ro \ amd64/docker:latest version Client: Docker Engine - Community Version: 18.09.8 API version: 1.39 Go version: go1.10.8 Git commit: 0dd43dd87f Built: Wed Jul 17 17:38:58 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.8 API version: 1.39 (minimum version 1.12) Go version: go1.10.8 Git commit: 0dd43dd87f Built: Wed Jul 17 17:48:49 2019 OS/Arch: linux/amd64 Experimental: false
console$ docker run -it --rm --network some-network \ -e DOCKER_TLS_CERTDIR=/certs \ -v some-docker-certs-client:/certs/client:ro \ amd64/docker:latest sh / # docker version Client: Docker Engine - Community Version: 18.09.8 API version: 1.39 Go version: go1.10.8 Git commit: 0dd43dd87f Built: Wed Jul 17 17:38:58 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.8 API version: 1.39 (minimum version 1.12) Go version: go1.10.8 Git commit: 0dd43dd87f Built: Wed Jul 17 17:48:49 2019 OS/Arch: linux/amd64 Experimental: false
console$ docker run --rm --network some-network \ -e DOCKER_TLS_CERTDIR=/certs \ -v some-docker-certs-client:/certs/client:ro \ amd64/docker:latest info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 18.09.8 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f init version: fec3683 Security Options: apparmor seccomp Profile: default Kernel Version: 4.19.0-5-amd64 Operating System: Alpine Linux v3.10 (containerized) OSType: linux Architecture: x86_64 CPUs: 12 Total Memory: 62.79GiB Name: e174d61a4a12 ID: HJXG:3OT7:MGDL:Y2BL:WCYP:CKSP:CGAM:4BLH:NEI4:IURF:4COF:AH6N Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: [***] Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false Product License: Community Engine WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled
console$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock amd64/docker:latest version Client: Docker Engine - Community Version: 18.09.8 API version: 1.39 Go version: go1.10.8 Git commit: 0dd43dd87f Built: Wed Jul 17 17:38:58 2019 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 18.09.7 API version: 1.39 (minimum version 1.12) Go version: go1.10.8 Git commit: 2d0083d Built: Thu Jun 27 17:23:02 2019 OS/Arch: linux/amd64 Experimental: false
console$ docker run --privileged --name some-docker -d \ ... \ --ulimit nofile=-1 \ --ulimit nproc=-1 \ --ulimit core=-1 \ --pids-limit -1 \ --oom-score-adj -500 \ amd64/docker:dind
部分标志可能不受主机dockerd设置支持,例如--ulimit nofile=-1可能会报错error setting rlimit type 7: operation not permitted,部分标志可能从主机dockerd实例继承合理值,或不适用于您的Docker-in-Docker使用场景(例如,您可能希望将--oom-score-adj设置为高于主机dockerd的值,以便Docker-in-Docker实例在主机Docker实例之前被终止)。
重要提示:运行在Docker容器中的应用程序有多种数据存储方式。我们建议docker镜像的用户熟悉可用选项,包括:
Docker文档是了解不同存储选项和变体的良好起点,有许多博客和论坛帖子讨论并提供此领域的建议。我们在此仅展示上述后一种选项的基本步骤:

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务