无法连接到Mac上在Vagrant内部运行的Jenkins docker容器

无法连接到Mac上在Vagrant内部运行的Jenkins docker容器,jenkins,docker,vagrant,Jenkins,Docker,Vagrant,我在Mac上运行Vagrant,以生成一个Ubuntu虚拟机。Docker安装在Ubuntu虚拟机上 我使用:docker pull Jenkins拆下了Jenkins容器,并开始说:docker run-p8080:8080--name=Jenkins master Jenkins 但是,我无法从8080端口的浏览器连接到Jenkins。我尝试通过以下方式从浏览器联系Jenkins: 1.其中,IP1是命令docker inspect返回的值。 2.其中IP2是ubuntu虚拟机内命令“ifc

我在Mac上运行Vagrant,以生成一个Ubuntu虚拟机。Docker安装在Ubuntu虚拟机上

我使用:
docker pull Jenkins
拆下了Jenkins容器,并开始说:
docker run-p8080:8080--name=Jenkins master Jenkins

但是,我无法从8080端口的浏览器连接到Jenkins。我尝试通过以下方式从浏览器联系Jenkins: 1.其中,IP1是命令
docker inspect
返回的值。
2.其中IP2是ubuntu虚拟机内命令“ifconfig”返回的eth0值。

您需要在此处进行双端口转发,您可以将Vagrant网络接口的端口转发到docker容器网络接口('-p 8080:8080'),但无法将Mac网络接口的端口转发到Vagrant机器

Vagrant.configure("2") do |config|
  config.vm.network "forwarded_port", guest: 8080, host: 8080
end

此处需要双端口转发,您可以将Vagrant网络接口的端口转发到docker容器网络接口('-p 8080:8080'),但无法将Mac网络接口的端口转发到Vagrant机器

Vagrant.configure("2") do |config|
  config.vm.network "forwarded_port", guest: 8080, host: 8080
end

如果您试图访问VM机器上的jenkins,请尝试:

localhost:8080或127.0.0.1:8080

如果您是从主机访问,请将vagrant配置更改为:

Vagrant.configure(“2”)do | config|
config.vm.network“forwarded_port”,来宾:8080,主机:8080
结束

然后再次尝试:
localhost:8080或127.0.0.1:8080

如果您试图访问VM机器上的jenkins,请尝试:

localhost:8080或127.0.0.1:8080

如果您是从主机访问,请将vagrant配置更改为:

Vagrant.configure(“2”)do | config|
config.vm.network“forwarded_port”,来宾:8080,主机:8080
结束

然后再次尝试:
localhost:8080或127.0.0.1:8080

如果您的docker和jenkins安装在VM中。首先运行以检查docker容器的名称。如果有,请按$docker rm container\u name删除所有

然后运行以下命令以运行jenkins:

$vagrant-ssh。它会让你进入虚拟机。然后

$docker run-p8080:8080-p50000:50000——命名为myjenkins-jenkinsci/jenkins(您安装的jenkins映像名)


轰。

如果您的docker和jenkins安装在VM中。首先运行以检查docker容器的名称。如果有,请按$docker rm container\u name删除所有

然后运行以下命令以运行jenkins:

$vagrant-ssh。它会让你进入虚拟机。然后

$docker run-p8080:8080-p50000:50000——命名为myjenkins-jenkinsci/jenkins(您安装的jenkins映像名)


Boom.

这对您的情况没有直接帮助,但仅供参考,这类东西使用起来容易多了,可以为您将这些东西连接在一起(然后您可以只绑定端口,它们将显示在localhost上-轻松)。此外,无需使用Vagrant/virtualbox或管理Ubuntu盒,所有这些都只是为了获得Docker。您告诉它从映射端口8080到主机端口8080开始。但是,当您在vagrant(我猜是虚拟机)中运行这个程序时,您必须从主机到Ubuntu vm,然后您可以在浏览器中的localhost:/访问它。因此,docker命令中的
port
选项基本上告诉docker公开docker容器上的端口,并将其映射到主机上的特定端口。在您的例子中,您将在docker容器中公开端口8080,并将其映射到Ubuntu VMRightle@Rik上的端口8080,这有助于Jenkins从浏览器访问。在Vagrantfile中设置端口转发后,我能够进入入门Jenkins页面。而且,我现在同意@DanLowe所说的。我打算在Mac上使用Vagrant,我将能够在Docker环境下完全复制Ubuntu虚拟机。虽然基本上是相似的,但我现在意识到有一些区别。这对您的情况没有直接的帮助,但仅供参考,这种东西使用起来容易得多,可以为您将这些东西连接在一起(然后您可以只绑定端口,它们将显示在localhost上-轻松)。此外,无需使用Vagrant/virtualbox或管理Ubuntu盒,所有这些都只是为了获得Docker。您告诉它从映射端口8080到主机端口8080开始。但是,当您在vagrant(我猜是虚拟机)中运行这个程序时,您必须从主机到Ubuntu vm,然后您可以在浏览器中的localhost:/访问它。因此,docker命令中的
port
选项基本上告诉docker公开docker容器上的端口,并将其映射到主机上的特定端口。在您的例子中,您将在docker容器中公开端口8080,并将其映射到Ubuntu VMRightle@Rik上的端口8080,这有助于Jenkins从浏览器访问。在Vagrantfile中设置端口转发后,我能够进入入门Jenkins页面。而且,我现在同意@DanLowe所说的。我打算在Mac上使用Vagrant,我将能够在Docker环境下完全复制Ubuntu虚拟机。虽然基本上是相似的,但我现在意识到有一些区别。您可以使用docker exec-it jenkins master/bin/bash检查您的容器您可以使用docker exec-it jenkins master/bin/bash检查您的容器