相关疑难解决方法(0)

如何从主机获取Docker容器的IP地址?

是否有一个命令可以在创建新容器后运行以从主机获取容器的IP地址?

基本上,一旦Docker创建了容器,我想推出自己的代码部署和容器配置脚本.

docker

1221
推荐指数
34
解决办法
110万
查看次数

当docker run命令中提到--net = host时,Docker容器不会公开端口

我在CentOS docker主机上有一个CentOS docker容器.当我使用此命令运行docker镜像时docker run -d --net=host -p 8777:8777 ceilometer:1.x,docker容器获取主机的IP,但没有为其分配端口.

如果我在没有"--net = host"的情况下运行相同的命令,则docker会docker run -d -p 8777:8777 ceilometer:1.x公开端口但使用不同的IP.docker版本是1.10.1.我希望docker容器与暴露端口的主机具有相同的IP.我也在Dockerfile指令中提到EXPOSE 8777但在docker run命令中提到"--net = host"时没有用.

ip docker dockerfile docker-build

28
推荐指数
3
解决办法
2万
查看次数

如何使用nginx docker容器访问localhost上的服务器?

我正在尝试使用dockerized版本的nginx作为我的节点(ExpressJS)应用程序的代理服务器.没有任何配置到nginx和发布容器的端口80,我能够看到默认的nginx登陆页面.所以我知道这很有用.

现在我可以挂载包含配置的启用站点的目录proxy_pass localhost:3000.我的节点应用程序在本地运行(不在任何Docker容器中),我可以通过端口3000(即localhost:3000)访问它.但是,我假设在nginx容器运行,映射到端口80,并代理我的localhost:3000,我将能够看到我非常简单的(hello world)应用程序.相反,我收到502.

我需要把东西传递给码头工人吗?这可能是nginx配置错误吗?这是我的nginx配置:

server {
  listen 0.0.0.0:80;
  server_name localhost;

  location / {
    proxy_pass http://localhost:3000;
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用这个问题,但似乎没有帮助.这是除非我做错了.

nginx node.js docker

16
推荐指数
3
解决办法
1万
查看次数

如何从Windows Docker容器连接到主机上的SQLEXPRESS

我正在开发要在Docker中运行的ASP.NET Core应用程序。在开发过程中,我希望容器连接到在我的开发机器(也是我的docker主机)上运行的SQLEXPRESS。但是,据我所知,容器根本无法到达主机。我无法连接到SQL或从容器ping主机IP。我可以在主机上本地运行该应用程序,并可以很好地连接到SQL Server,因此我怀疑是否可以在可以从容器ping主机的位置获得它,也可以连接到SQL。

主机在主适配器上的IP为10.0.0.5,在“ HNS Internal NIC”上的IP为172.30.96.1,我认为这是Docker使用的主机。

为了测试基本连通性,我尝试从容器内部ping:

docker exec -i containername cmd
c:\app ping 10.0.0.5
Request timed out
c:\app ping 172.30.96.1
Request timed out
Run Code Online (Sandbox Code Playgroud)

基于一些类似的帖子,我也尝试连接到“主机”网络,但是,此版本的docker显然不可用。我怀疑这对于Linux来说更多:

docker run --net="host" ...
network host not found.  
Run Code Online (Sandbox Code Playgroud)

我还发现了类似的Windows 10帖子,其中建议使用“透明”网络。有了这个网络,我无法连接或断开连接:

docker network create --driver transparent trans --gateway 10.0.0.1 --subnet 10.0.0.1/16
docker run --net=trans ...
docker exec -i containername cmd
c:\app> ipconfig
IPv4 address: 10.0.205.104
c:\app> ping 10.0.0.5
Request timed out
c:\app> exit
ping 10.0.205.104
Request timed out
Run Code Online (Sandbox Code Playgroud)

这是我的码头工人信息:

 Containers: 1
  Running: 1
  Paused: 0 …
Run Code Online (Sandbox Code Playgroud)

networking docker

6
推荐指数
0
解决办法
607
查看次数

如何将docker容器与主机的localhost mysql数据库连接?

我有一个在后端使用MySQL数据库的war文件。我已将 war 文件部署在 docker 容器中,并且可以从浏览器中 ping 通该文件。我想将我的应用程序与 MySQL 数据库连接。该数据库存在于我的主机上localhost:3306

由于我无法从容器的本地主机内部连接它,所以我尝试运行一个命令docker inspect --format '{{ .NetworkSettings.IPAddress }}' 213be777a837 该命令给了我一个 IP 地址172.17.0.2。我进入 MySQL 服务器选项并将此 IP 地址放入绑定字段并重新启动服务器。之后,我更新了我的项目数据库连接字符串172.17.0.2:3306

但它不起作用。谁能告诉我我缺少什么吗?我还尝试使用 root@% 添加新的数据库用户,然后运行命令允许对“root@%”的所有权限,但没有任何效果。

mysql docker

5
推荐指数
1
解决办法
9637
查看次数

标签 统计

docker ×5

docker-build ×1

dockerfile ×1

ip ×1

mysql ×1

networking ×1

nginx ×1

node.js ×1