我需要在 docker 中创建多主机网络吗?
Do I need to create multi host network in docker?
对于以下 docker-动态构建 docker 文件:
version: '2'
volumes:
jenkins_home:
external: true
services:
jenkins:
build:
context: .
args:
DOCKER_GID: ${DOCKER_GID}
DOCKER_ENGINE: ${DOCKER_ENGINE}
DOCKER_COMPOSE: ${DOCKER_COMPOSE}
volumes:
- jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "8080:8080"
创建网桥类型网络(project1_default
)已创建:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
....
f1b7ca7c6dfe project1_default bridge local
....
在 运行 以下命令之后:
$ docker-compose -p project1 up -d
启动并连接到 master jenkins 后,我们使用 master jenkins 的 EC2 plugin 在单独的 EC2 主机上配置和创建 slave jenkins。
但是,以上网络(project1_default
)是单主机网络,可以允许数据包在单主机内传输。下面是我对桥式网络的可视化 (project1_default
)...
因此,我们需要启动并配置 master jenkins 以使用 EC2 插件在单独的 EC2 主机上启动 slave jenkins,
我需要创建多主机网络(swarm
)类型吗?而不是桥接类型 (project1_default
)...
如果是,如何创建多主机网络?
这三个都应该 运行 在一个容器中?另外,容器 运行ning 在单独的 ec2 实例上,对吗?
您可以向底层主机 IP 公开必要的端口。这会将 Jenkins 容器暴露给您的网络,您将能够与之交互,就像它直接安装在 ec2 实例上(而不是在容器中)一样。
举个例子
docker run -p 80:8080 ubuntu bash
这会将容器中的端口 8080 暴露给主机上的端口 80。从您的主服务器开始,然后是从服务器,然后使用 ec2 实例的 IP 和您为从服务器公开的端口,就像在非容器设置中一样添加您的从服务器。
您可以在此处找到有关端口发布的更多信息
对于以下 docker-动态构建 docker 文件:
version: '2'
volumes:
jenkins_home:
external: true
services:
jenkins:
build:
context: .
args:
DOCKER_GID: ${DOCKER_GID}
DOCKER_ENGINE: ${DOCKER_ENGINE}
DOCKER_COMPOSE: ${DOCKER_COMPOSE}
volumes:
- jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "8080:8080"
创建网桥类型网络(project1_default
)已创建:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
....
f1b7ca7c6dfe project1_default bridge local
....
在 运行 以下命令之后:
$ docker-compose -p project1 up -d
启动并连接到 master jenkins 后,我们使用 master jenkins 的 EC2 plugin 在单独的 EC2 主机上配置和创建 slave jenkins。
但是,以上网络(project1_default
)是单主机网络,可以允许数据包在单主机内传输。下面是我对桥式网络的可视化 (project1_default
)...
因此,我们需要启动并配置 master jenkins 以使用 EC2 插件在单独的 EC2 主机上启动 slave jenkins,
我需要创建多主机网络(
swarm
)类型吗?而不是桥接类型 (project1_default
)...如果是,如何创建多主机网络?
这三个都应该 运行 在一个容器中?另外,容器 运行ning 在单独的 ec2 实例上,对吗?
您可以向底层主机 IP 公开必要的端口。这会将 Jenkins 容器暴露给您的网络,您将能够与之交互,就像它直接安装在 ec2 实例上(而不是在容器中)一样。
举个例子
docker run -p 80:8080 ubuntu bash
这会将容器中的端口 8080 暴露给主机上的端口 80。从您的主服务器开始,然后是从服务器,然后使用 ec2 实例的 IP 和您为从服务器公开的端口,就像在非容器设置中一样添加您的从服务器。
您可以在此处找到有关端口发布的更多信息