如何使用未在群中部署的docker容器访问docker群的服务?
我在docker群中部署了Jenkins和Nexus。 jenkins有一个dockerconfiguration为通过套接字访问主机docker。
volumes: - /var/run/docker.sock:/var/run/docker.sock
这个设置允许在Docker群中部署jenkins里面的docker,这个工作正常。
我面临的问题,但是当我试图build立与docker集装箱jenkinspipe道,随后试图访问nexus存储库。 基本上jenkins的群集被部署在覆盖networking内,而jenkinspipe道使用的容器无法访问覆盖networking。
Dockernetworking如下所示:
docker network ls: ... wzr8yyx6hki1 ci-cd-network overlay swarm ..
样品jenkinspipe道演示过程:
pipeline { agent none triggers { pollSCM('H/15 * * * *') } environment { NODE_IMAGE = 'node:6' } stages { stage('Checkout') { agent any steps { /*generated with jenkins syntax generator*/ checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'git@bitbucket.org:code/project.git']]]) } } stage('Static code check (run lint)') { agent { docker { image '${NODE_IMAGE}' } } steps { sh 'npm install' sh 'npm run lint:ts' } } stage('Unit Test') { agent { docker { image '${NODE_IMAGE}' } } steps { sh 'npm install' sh 'npm publish' } } } }
jenkinspipe道进程创build的容器不能访问swarm中包含nexus和jenkins机器的networking“ci-cd-network”内的nexus服务。 基本上,nexus服务可以从docker swarm('ping ping nexus')中部署的另一个docker服务访问,但是不能从我的'node'容器访问,它仅仅作为容器单独运行(不在群集中)? 任何想法如何使联结服务“可见”的“节点”容器?
您可以将jenkins中创build的代理容器附加到覆盖networking,然后容器将能够相互通信。
agent { docker { image '${NODE_IMAGE}' args '--network ci-cd-network' } }
- Docker从站不是JNLP代理问题
- 在主机上使用consul DNSparsing容器
- 在Docker中设置java主页
- 由于未安装<必需插件“org.jetbrains.plugins.remote-run”,导致Intellij Idea CE 2016.1的Docker插件安装失败。
- 在Docker中使用'opn'npm模块的未处理诺言拒绝
- 运行docker容器时出错:设备上没有剩余空间:“/ data / db / journal”
- 从主机连接到在Docker Container中运行的Redis
- 如何创build一个PHP和节点的docker图像?
- Docker –env-file – 在$ PATH中找不到可执行文件