有没有办法将网络和绑定端口分配给 Jenkins 中的 docker 代理?
Is there a way to assign network and binding ports to a docker agent in Jenkins?
我有下一个设置:
- 一个亚马逊 EC2 实例;
- 在上面安装了 Jenkins;
- Docker 实例与 Jenkins 一起安装
当我启动容器时(在管道脚本中),我还尝试添加主机网络和绑定端口。
node {
docker.image('localhost:5000/build_deploy_agent:base').withRun('-t --network host -p 9101:9101') { c ->
sh 'doing stuff'
}
}
我需要这个,因为最后我想让容器与已部署的应用程序一起运行。
问题是,没有为容器分配网络或端口。仅考虑 -t 命令。
有没有办法做到这一点,或者我正在浪费时间?
首先通过检查检查网络是否可见,而不仅仅是 docker ps
。
参见“How to find the network my container is in?”
docker inspect <lyContainer> -f "{{json .NetworkSettings.Networks }}"
或者您可以再次 filter docker ps by network 检查容器是否已分配到预期的网络。
您还可以 check your network stack 通过像 ip addr show
这样的 Jenkins 步骤来查看是否创建了新的网络接口。
我有下一个设置:
- 一个亚马逊 EC2 实例;
- 在上面安装了 Jenkins;
- Docker 实例与 Jenkins 一起安装
当我启动容器时(在管道脚本中),我还尝试添加主机网络和绑定端口。
node {
docker.image('localhost:5000/build_deploy_agent:base').withRun('-t --network host -p 9101:9101') { c ->
sh 'doing stuff'
}
}
我需要这个,因为最后我想让容器与已部署的应用程序一起运行。
问题是,没有为容器分配网络或端口。仅考虑 -t 命令。
有没有办法做到这一点,或者我正在浪费时间?
首先通过检查检查网络是否可见,而不仅仅是 docker ps
。
参见“How to find the network my container is in?”
docker inspect <lyContainer> -f "{{json .NetworkSettings.Networks }}"
或者您可以再次 filter docker ps by network 检查容器是否已分配到预期的网络。
您还可以 check your network stack 通过像 ip addr show
这样的 Jenkins 步骤来查看是否创建了新的网络接口。