有没有办法将网络和绑定端口分配给 Jenkins 中的 docker 代理?

Is there a way to assign network and binding ports to a docker agent in 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 步骤来查看是否创建了新的网络接口。