相关疑难解决方法(0)

在Docker for Mac上,从容器中看到的主机ip是什么?

我需要在容器上设置调试器,这需要我设置远程(docker host)IP.在不同的教程中,我发现不同的IP地址列为可能的解决方案.在我的容器中,我运行了一个网络服务器,它向我展示了从我的主机到容器的连接来自172.19.0.1.这是在Docker for Mac版本上1.11.x.

但是,如何从Docker for Mac上的容器中看到主机IP?该IP什么时候可以更改?

编辑:https ://stackoverflow.com/a/24716645/6309的副本

macos docker

6
推荐指数
1
解决办法
9646
查看次数

主机在Docker容器内无法访问

我在主机上183.83.83.83 有一个docker 容器。子域mycontainer.example.com的A记录指向此IP。

卷曲183.83.83.83mycontainer.example.com给出HTTP状态200和正确的网站。

但是,从该主机上的每个容器内部(到上述IP或主机名)相同的卷曲无法连接:

curl: (7) Failed to connect to mycontainer.example.com port 80: Host is unreachable
Run Code Online (Sandbox Code Playgroud)

从另一个主机的Docker容器或主机本身尝试此操作时,不会发生这种情况。

这是怎么了?

编辑:更多详细信息:主机运行一个Nginx代理容器,该容器将所有请求代理mycontainer.example.com到我的前端容器(通过小节点Web服务器运行React应用程序)。前端容器应该代理从mycontainer.example.com/api发出的所有API请求mycontainer.example.com:1337/api/v1。但是它不能代理API请求,因为我Host is unreachable从此主机上运行的所有容器内部收到错误。

curl docker

6
推荐指数
2
解决办法
3332
查看次数

将docker容器连接到本地工作台MySQL DB

我有我的网络应用程序在我的本地机器上运行并连接到Mysql工作台,我现在正在尝试将webapp停靠.我似乎无法连接到我的本地开发机器上的数据库(我正在运行适用于Windows的Docker Desktop),有人能告诉我如何进行此操作吗?这是我到目前为止所拥有的.

`docker run -it -e "CATALINA_OPTS=-Dspring.profiles.active=dev -DPARAM1=DEV" -p 8080:8080 -p 8005:8005 -p 8009:8009 -p 3306:3306 --add-host=docker:192.168.1.7 -v C:\myapp\trunk\target\myapp.war:/usr/local/tomcat/webapps/myapp.war --name waitapp tomcat:8.0.38-jre8`
Run Code Online (Sandbox Code Playgroud)

几秒钟后,我跑了 docker ps -a

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                           PORTS                                                                                            NAMES
2a1764dd9640        tomcat:8.0.38-jre8     "catalina.sh run"        2 minutes ago       Up 2 minutes                     0.0.0.0:3306->3306/tcp, 0.0.0.0:8005->8005/tcp, 0.0.0.0:8009->8009/tcp, 0.0.0.0:8080->8080/tcp   waitapp
Run Code Online (Sandbox Code Playgroud)

容器似乎正在运行,但是当我尝试其余请求时,我得到404 Not not,这与使用内置tomcat服务器从spring工具套件内部运行时相同.

注意 我不想运行单独的mysql容器并通过网络链接这两个容器,我只是想尝试让我新创建的docker应用程序连接到我的本地数据库MySQL.

mysql docker docker-for-windows docker-desktop

6
推荐指数
1
解决办法
1532
查看次数

从boot2docker/osx中运行的docker容器中查找主机ip

我刚刚尝试使用OS X上的boot2docker将应用程序移动到docker容器中.

此应用程序需要连接到主机系统上运行的mysql服务器(不在应用程序的容器或其他容器中).

现在我正在努力在"dockerized"应用程序中配置mysql主机名:到目前为止它只是连接到localhost,但这不再起作用,因为这不再指向主机mysql实际上正在运行.

作为一种快速解决方法,我已将我的工作站私有IP(在我的情况下为10.0.0.X)添加到应用程序的mysql连接配置中.

但我想知道: 是否有自动方式从docker容器中查找主机的私有IP地址

macos docker boot2docker

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

Django / Docker / 使用 Pydev 进行远程调试

我的设置如下: - 在 docker 中运行的 django 服务器,带有端口映射:8090:8090 - Eclipse with PyDev

我希望能够在 Pydev 上放置断点(单击一行,一步一步)

我发现了几篇文章,例如; http://www.pydev.org/manual_adv_remote_debugger.html

但它仍然无法正常工作。

1) 我应该将 manage.py 更新为“导入 pydev”吗?要添加哪些行,我是否必须在 docker 容器中复制 pydev 插件的 pysrc 才能进行模块导入?

2)是否需要端口转发?运行到 docker 中的 python 实例应该可以访问主机上的远程调试服务器吗?

3) 我找到了关于 pycharm 和使用 ssh 远程调试的文章?不能用 pydev 做类似的事情吗?

4)如何“链接”我的本地目录和docker“目录”?

[编辑]我找到了解决方案

  • 将 eclipse/path_to\pydev\plugins\org.python.pydev\pysrc 目录复制到您的 docker 容器可以访问它的地方。

  • 编辑 pysrc/pydevd_file_utils.py,并添加主机和 docker 容器之间的目录映射,如: PATHS_FROM_ECLIPSE_TO_PYTHON = [(r'C:/django',r'/.../lib/django'), (r'C:/ workspace/myapp',r'/var/www/myapp')] 如果您有多个包含 python 代码的路径,您可以设置多个元组

  • 编辑 manage.py 并添加以下内容

    sys.path.append('/my_path/to_pysrc_/under_docker/pysrc') import pydevd pydevd.settrace(host='172.17.42.1')​​ #你主机的IP

  • 在 Pydev 中,在首选项 > Pydev > 运行/调试 > 远程调试器端口:5678

  • 在 Debug Perspective …

django debugging remote-debugging pydev docker

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

如何在docker容器中获取本地主机IP地址?

我正在使用docker并使用脚本运行.我想在docker中使用主机IP地址更改其中一个配置.

#!/bin/bash
IP=$(echo `ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed   's/addr://'`)
echo Setting xwiki config IP
CONFIG=/xwiki/webapps/xwiki/WEB-INF/xwiki.cfg
sed -i -e "s/^xwiki.authentication.authhost=localhost*/xwiki.authentication.authhost= $IP/"  $CONFIG
Run Code Online (Sandbox Code Playgroud)

/xwiki/start_xwiki.sh -f

我用以下命令运行我的docker.

docker run -t -i $EXPOSE_PORTS $IMAGE "$@"
Run Code Online (Sandbox Code Playgroud)

bash shell docker

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

GitHub Actions:是否可以从 Docker 容器调用运行器主机?

在下面的 GitHub Actions 工作流程中,我执行了一个 Gradle 构建,该构建针对 Micronaut 应用程序运行集成测试。该应用程序依赖于

  • MariaDB 数据库
  • 和一个security/image:0.1.15
jobs:
  build-test:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        java: [ '15' ]

    services:
      tempoapp-db:
        image: mariadb:10.4.15
        ports:
          - 3306:3306
        env:
          MYSQL_ROOT_PASSWORD: foo
          MYSQL_DATABASE: xoxo
          MYSQL_USER: bar
          MYSQL_PASSWORD: foobar

      security:
        image: security/image:0.1.15
        env:
          JAVA_TOOL_OPTIONS: "-Dcallback.url=http://<what to place here?>:8090"
        credentials:
          username: ${{ secrets.PACKAGES_USER }}
          password: ${{ secrets.PACKAGES_TOKEN }}
        ports:
          - 6000:8080

    steps:
      - name: Check out repository
        uses: actions/checkout@v2

      - name: Set up JDK
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.java }}

      - …
Run Code Online (Sandbox Code Playgroud)

micronaut github-actions

4
推荐指数
1
解决办法
3437
查看次数

默认情况下,docker容器可以调用host的localhost UDP吗?

我有一个docker容器,并且还在VM上安装了一个守护程序,用于在端口8125上侦听UDP.容器在此8125端口上使用UDP协议发送数据.

我试图通过启动容器来打开端口-p 8125:8125/udp,但是我收到以下错误:

Error starting userland proxy: listen udp 0.0.0.0:8125: bind: address already in use
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为守护进程已经在侦听此端口.

那么如何配置Docker以便容器可以将UDP有效负载发送到外部守护进程?

udp docker

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