相关疑难解决方法(0)

从Docker容器内部,如何连接到本机的本地主机?

所以我在Docker容器中运行了一个Nginx,我在localhost上运行了一个mysql,我想从我的Nginx中连接到MySql.MySql在localhost上运行,而不是将端口暴露给外部世界,所以它绑定在localhost上,而不是绑定在机器的ip地址上.

有没有办法从这个docker容器中连接到这个MySql或localhost上的任何其他程序?

reverse-proxy nginx docker docker-networking

1176
推荐指数
24
解决办法
65万
查看次数

如何在Linux和OS X上获取本地计算机的主IP地址?

我正在寻找一个命令行解决方案,它将返回localhost的主(第一)IP地址,而不是127.0.0.1

该解决方案至少适用于Linux(Debian和RedHat)和OS X 10.7+

我知道ifconfig两者都可用,但它们的输出在这些平台之间并不一致.

unix ip bash ifconfig

318
推荐指数
18
解决办法
49万
查看次数

如何从docker容器访问主机端口

我有一个运行jenkins的码头集装箱.作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器.有没有办法将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器?

编辑:我在Linux机器上本地运行docker.

更新:

除了下面的@larsks答案,要从主机获取主机IP的IP地址,我还会执行以下操作:

ip addr show docker0 | grep -Po 'inet \K[\d.]+'
Run Code Online (Sandbox Code Playgroud)

docker docker-container

217
推荐指数
13
解决办法
18万
查看次数

如何在Rails上禁用"无法从...渲染控制台"

我正在使用Ubuntu/vagrant作为我的开发环境.我在rails console上收到这些消息:

Started GET "/assets/home-fcec5b5a277ac7c20cc9f45a209a3bcd.js?body=1" for 10.0.2.2 at 2015-04-02 15:48:31 +0000
Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Run Code Online (Sandbox Code Playgroud)

是否可以禁用那些"无法呈现..."消息或以任何方式允许它们?

ruby-on-rails vagrant

131
推荐指数
9
解决办法
6万
查看次数

从docker容器访问主机数据库

如果我在某台主机上运行了一个mysql数据库,并且该主机也在运行一个docker容器:我如何从主机上运行的docker容器中访问mysql数据库?

例如,有没有办法将主机端口发布到容器(docker run -p的反转)?

docker

105
推荐指数
5
解决办法
7万
查看次数

Xdebug: [Step Debug] 无法连接到调试客户端

我想尝试 Xdebug 3.0.0RC1 来探索发生了什么变化以及随之而来的新功能。我也在使用最新的 PhpStorm 2020.3 EAP,它支持 Xdebug 3,不需要主要配置。下面是我的调试器的 PhpStorm 配置:

在此处输入图片说明

这是我为 Xdebug3 尝试的配置:

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal # here I tried several combinations like: "localhost", "127.0.0.1", "172.17.0.1"
xdebug.client_port=9001 # here I tried several ports 9003 included with no success
Run Code Online (Sandbox Code Playgroud)

我也试过根本不添加client_host/client_port设置,但仍然失败。

我收到此错误:

Script php bin/console doctrine:cache:clear-metadata returned with error code 255
!!  [17-Nov-2020 15:24:40 UTC] Xdebug: [Step Debug] Could not connect to debugging client. Tried: host.docker.internal:9001 (through xdebug.client_host/xdebug.client_port) :-(
!!  [17-Nov-2020 15:24:41 UTC] PHP Fatal error:  Method class@anonymous::__toString() …
Run Code Online (Sandbox Code Playgroud)

php xdebug phpstorm

22
推荐指数
5
解决办法
2万
查看次数

从docker容器连接到远程MySQL数据库

我正在努力将一个Django 1.5.x应用程序容器化,该应用程序通过ODBC连接到单独服务器上的MySQL数据库:

[mysql_default]
database = DB_NAME
driver = /usr/lib64/libmyodbc5.so
server = REMOTE_DB_SERVER
user = DB_USER
password = DB_USER_PWD
port = 3306
Run Code Online (Sandbox Code Playgroud)

我能够通过端口转发和SSH连接到远程数据库,在我的本地机器(docker之外)上运行Django应用程序:

 ssh -L 3307:127.0.0.1:3306 MYID@REMOTE_DB_SERVER
Run Code Online (Sandbox Code Playgroud)

我使用Centos 6.x为应用程序设置了Docker容器,但无法使MySQL连接正常工作.容器安装了MySQL并运行了mysqld.

我的docker-compose.yml文件如下所示:

version: "2"
services:
  web:
    build: .
    image: MY_IMAGE
    container_name: MY_CONTAINER
    network_mode: "host"
    ports:
      - "3307:3306"
    command: /bin/bash
Run Code Online (Sandbox Code Playgroud)

在容器运行的情况下,我可以执行以下命令(在容器外部)以在远程数据库上显示数据库:

docker exec MY_CONTAINER echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3307
Run Code Online (Sandbox Code Playgroud)

但是从容器内部,同样的命令失败:

    echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3306

ERROR 2003 (HY000): Can't connect to MySQL …
Run Code Online (Sandbox Code Playgroud)

mysql odbc docker

14
推荐指数
2
解决办法
4万
查看次数

将Docker父主机ip插入容器的hosts文件中

我是Docker的新手,并试图了解将docker parent host ip插入容器主机文件的最佳方法是什么.

我在Dockerfile中使用以下命令

RUN /sbin/ip route|awk '/default/ { print $3,"\tdockerhost" }' >> /etc/hosts

但有时候主机ip得到改变所以它不再相关......

如果你问自己,这样做的原因是我需要访问另外2个码头工人容器(并且链接不提供此功能).

谢谢,

docker

11
推荐指数
2
解决办法
8331
查看次数

无法从 WSL2 docker 容器连接到 WSL2 localhost 服务器

我在 WSL2上的https://0.0.0.0:4000(也可以作为https://local.phx-cd.shoepping.at:4000访问,映射到 Ubuntu 主机文件中的 127.0.0.1)上运行一个简单的 Web 服务器乌班图。我可以从 Ubuntu 和 Windows 主机连接到它 - 到目前为止一切顺利。但此外,在我的 Docker for Win 与 WSL2 集成中,我运行了一个 selenium chrome 容器,该容器正在该 Web 服务器上连接和测试内容(使用网桥),但它无法连接到它!

我连接到容器并尝试卷曲到 Web 服务器 - 连接被拒绝。由于我的计算机上有双启动,我尝试切换到我的 Linux 发行版,在那里运行 Web 服务器并在 Linux Docker 中运行 selenium,并且与本地 Web 服务器的连接工作正常。所以我认为这与 WSL2 有关系。

我的 docker-compose.yaml(我省略了 selenium hub 配置)

selenium-chrome-local:
      image: selenium/node-chrome-debug:3.141.59
      restart: always
      ports:
        - 5901-5902:5900
      volumes:
        - /dev/shm:/dev/shm
        - ../../temp:/home/seluser/Downloads
      depends_on:
        - selenium-hub-local
      environment:
        - SCREEN_WIDTH=1920
        - SCREEN_HEIGHT=1080
      extra_hosts:
        - "local.phx-cd.shoepping.at:10.99.99.1"
      networks:
        - selgrid
        - dockerhost

 networks: …
Run Code Online (Sandbox Code Playgroud)

docker windows-subsystem-for-linux

9
推荐指数
2
解决办法
9928
查看次数

如何找到在Jenkins"Docker插件"中使用的"Docker主机URI"?

有没有我们可以运行的命令并找到"Doc​​ker Host URI"?我找到了一些相关的问题,但没有得到它.

docker jenkins-docker

7
推荐指数
4
解决办法
9097
查看次数