因此,出于某种原因,我想使用一个码头:dind在一个码头-复合。use。我知道“轻松”的方法是直接在映像中挂载套接字(比如: /var/run/docker.sock:/var/run/docker.sock),但我想避免(出于安全原因)。
这是我的实验对接者-合成者。Here:
version: '3.8'
services:
dind:
image: docker:19.03.7-dind
container_name: dind
restart: unless-stopped
privileged: true
environment:
- DOCKER_TLS_CERTDIR=/certs
volumes:
- dind-certs-ca:/certs/ca
- dind-certs-client:/certs/client
networks:
- net
expose:
- 2375
- 5000
volumes:
dind-certs-ca:
dind-certs-client:
networks:
net:
driver: bridge这里没有什么复杂的东西,然后我试着看看服务是否被正确设置:
docker logs dind这里没有问题,它的启动和运行。但是,一旦我尝试使用它,例如:
docker run --rm -it --network net --link dind:docker docker version我得到了以下错误:
Cannot connect to the Docker deamon at tcp://docker:2375. Is there a deamon running ?你知道为什么院长没有回应吗?
编辑
在hariK的评论之后(顺便说一句),我将端口2376添加到公开的端口中。我想我还没解决好我的问题。下面是我得到的错误:
error during connect: Get http://docker:2375/v1.40/version dial tcp: lookup on docker on [ip]: no such host因此,我查看了这个错误,发现它似乎是dind版本中反复出现的错误(就像这个上的gitlab有很多问题)。在gitlab 这里的类似问题上也有一篇关于堆栈溢出的文章。
为了解决这个问题,我试过:
DOCKER_TLS_CERTDIR: ""跳变关闭TLS .但失败了如果有人有主意让TLS继续工作,那就太棒了:) (我仍然会自己看,但如果你能用有趣的链接轻轻推一下,那就太酷了^^)
发布于 2021-04-20 14:59:24
若要将Docker与禁用的TLS一起使用(即默认情况下使用TCP端口2375 ),请在Docker中的dind服务定义中取消设置DOCKER_TLS_CERTDIR变量,如下所示:
dind:
image: docker:dind
container_name: dind
privileged: true
expose:
- 2375
environment:
- DOCKER_TLS_CERTDIR=(注意:不要将其初始化为任何值,如''或""__)
发布于 2020-06-16 08:49:04
因此,我找到了一个解决方案,并将其添加到基本的停靠库中--使用TLS选项组成一个重注册。
因此,我有fisrt生成证书,然后正确地安装它们。
如果你们中的任何一个在类似的问题上运行,我为证书做了一个github回购,其中包含了docker和命令行。
发布于 2022-08-26 11:00:39
过了一段时间,我也在寻找同样的东西。下面是一个例子,对于特定版本的图像,这应该在几年后仍然有效:
version: '3'
services:
docker:
image: docker:20.10.17-dind-alpine3.16
privileged: yes
volumes:
- certs:/certs
docker-client:
image: docker:20.10.17-cli
command: sh -c 'while [ 1 ]; do sleep 1; done'
environment:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_VERIFY: 1
DOCKER_CERT_PATH: /certs/client
volumes:
- certs:/certs
volumes:
certs:TLS证书在启动时由"docker“服务生成,并使用卷共享。
按以下方式使用客户端:
docker-compose exec docker-client sh
#now within docker-client container
docker run hello-worldhttps://stackoverflow.com/questions/62328362
复制相似问题