经过一些试验,我发现了问题的原因。关键操作是尝试在 本身 运行在Docker桥接网络中的Docker容器内创建Docker桥接网络(使用
dockernetwork create或testcontainers
Network对象)。如果执行此操作,则不会从Docker收到错误消息,Docker守护程序日志文件也不会包含任何有用的消息。但是尝试使用网络将导致“没有通往主机的路由”。
__
通过让最外面的Docker容器(Jenkins代理)访问主机网络,使Jenkins提供了
--network="host"对其
dockerrun命令的选项,我解决了该问题:
pipeline { agent { dockerfile { filename 'Dockerfile.jenkinsAgent' additionalBuildArgs ... args '-v /var/run/docker.sock:/var/run/docker.sock ... --network="host" -u jenkins:docker' } } stages {...可以,因为Jenkins代理不需要桥接网络提供的隔离级别。



