标签: docker-network

如何在 docker 启动时删除/禁用 docker0 网桥

有什么办法可以在 docker 启动时禁用 docker0 桥接器?

在 daemon.json 中尝试了 "bridge": "none" 但它不起作用。

还使用“ip link delete docker0”删除了默认的docker桥,但是当我们重新启动docker时它会自动出现。那么有什么永久的方法可以在启动时禁用/删除默认的 docker 桥接器吗?我在这里看到了同样的问题How to delete interface docker0但我已经尝试过了,每当 docker 重新启动时,docker0 网桥就回来了。

docker docker-network

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

docker网络创建错误“数值结果超出范围”

有没有人得到这个?这是我的命令:

docker network create \
  --opt com.docker.network.bridge.enable_ip_masquerade=true \
  --opt com.docker.network.bridge.enable_icc=true \
  --opt com.docker.network.bridge.host_binding_ipv4=0.0.0.0 \
  --opt com.docker.network.bridge.name=dockerbridge123456789 \
  --opt com.docker.network.driver.mtu=1500 \
  -d bridge \
  mydockerdockerbridge
Run Code Online (Sandbox Code Playgroud)

这是回应:

Error response from daemon: failed to check bridge interface existence: numerical result out of range
Run Code Online (Sandbox Code Playgroud)

docker docker-networking docker-network

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

如何使用 docker SDK for python 获取 docker 容器的 IP 地址?

我正在启动一个容器network_mode = bridge,当我检查终端中的网络容器时,我得到了容器 IP 地址。

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_id
Run Code Online (Sandbox Code Playgroud)

但是,我无法从容器对象中获取此 IP 地址。不搜索网络对象中的容器有什么解决办法吗?

python sdk docker docker-network

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

无法从前端解析 docker compose 服务名称

您好,我是使用 docker 进行开发的新手。我试图在这里从前端(react)到后端(express.js)进行通信。

net::ERR_NAME_NOT_RESOLVED我也启用了 cors,当尝试使用 url 从后端获取时,出现错误http://backend:4001

但当我使用 docker 内部 IPAddress 时它就可以工作,例如:http://172.18.0.3:4001

以下是我的 docker-compose.yml 文件。

请提供有关使其正常工作的建议,谢谢。

version: "3"

services:

  backend:
    build: ./api
    volumes:
      - ./api:/usr/src/api
    ports:
      - 6002:4001
    depends_on:
      - database

  database:
    image: mongo:4.0.15-xenial
    ports:
      - 27018:27017


  frontend:
    build: ./app
    volumes:
      - ./app:/usr/src/app
    ports:
      - 6001:3000
    links:
      - backend
    depends_on:
      - backend
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose docker-network

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

Docker绑定8080端口时无法访问Host中的应用程序

我有一个带有 Java spring boot 应用程序的 docker 映像,该应用程序在端口 8080 的 docker 容器中启动和运行没有问题,正如您在部分日志中看到的那样:

\n\n
   2020-02-24 02:09:07.906  INFO : Tomcat started on port(s): 8080 (http) with context path \'/web-app\'\n   2020-02-24 02:09:07.909  INFO : Started web-app in 7.034 seconds (JVM running for 7.601)\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我在容器内运行curl命令(使用终端),我会得到正确的响应,表明服务器正在运行并且正在运行。

\n\n
/# curl http://localhost:8080/web-app/cars/1\n{"id":"1"}\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,当我尝试访问主机上的应用程序时,问题就来了,我正在使用 Windows 10 顺便说一句(在网络浏览器中http://localhost:8080/web-app/cars/1),这里是如何我运行泊坞窗图像。

\n\n
docker run web-app -p 8080:8080\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,我不认为这是 Windows 问题,因为我可以运行一个简单的 nginx 服务器,并且可以毫无问题地在主机上访问它。

\n\n
docker run -d -p 80:80 nginx\n
Run Code Online (Sandbox Code Playgroud)\n\n

我注意到的一件事是当看到正在运行的容器时,端口列

\n\n
C:\\Users\\luis>docker ps\nCONTAINER ID        IMAGE               COMMAND                  CREATED …
Run Code Online (Sandbox Code Playgroud)

docker docker-for-windows docker-network

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

Nextjs + Docker-Compose:如何解析客户端容器主机名?

这里是 Docker 新手。我的 Nextjs 应用程序遇到了令人困惑的障碍,该应用程序与 API 和数据库容器一起在自己的容器中运行。

我的 Nextjs 应用程序使用 API 容器中的数据。这在服务器端效果很好:Nextjs 应用程序按其应有的方式解析容器主机名。然而,在客户端,应用程序崩溃了,因为容器主机名对浏览器来说没有任何意义(我认为?)。我对如何处理这件事感到相当迷失。有想法吗?

这是我的 Docker Compose 文件,它有助于阐明我的问题。请注意,我通过以下environment字段将主机名传递给 Nextjs 应用程序:

version: '3.8'

services:
    # Redis 
    redis:
        image: redis
        command: redis-server --requirepass ${REDIS_PASSWORD} --bind redis
        ports:
            - "6379:6379"
        networks:
            - mywebappio
    # Data Processing Service
    mywebapp-api:
        container_name: mywebapp-api
        restart: always
        build: 
            context: packages/dps-api
            dockerfile: Dockerfile
        command: npm run dev # npm start prod
        working_dir: /usr/src/dps-api
        env_file: 
            - .env
        volumes: 
            - ./packages/dps-api:/usr/src/dps-api
        ports:
            - "5000:5000"
        networks:
            - mywebappio
        depends_on:
            - redis …
Run Code Online (Sandbox Code Playgroud)

isomorphic-javascript docker-compose next.js docker-network

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

结构示例中给出的应用程序未检测到 Hyperledger Fabric 测试网络的名称

我刚刚根据文档从 Hyperledger Fabric 存储库重新安装了 Fabric Samples v2.2.0 。

但是当我尝试通过运行钱包来运行asset-transfer-basic位于fabric-samples/asset-transfer-basic/application-javascript目录中的应用程序时,node app.js会创建一个管理员和用户。但随后它尝试调用中给出的函数app.js并显示此错误

error: [Transaction]: Error: No valid responses from any peers. Errors:
    peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 
aa705c10403cb65cecbd360c13337d03aac97a8f233a466975773586fe1086f6: could not launch chaincode basic_1.0:b359a077730d7
f44d6a437ad49d1da951f6a01c6d1eed4f85b8b1f5a08617fe7: error starting container: error starting container:
 API error (404): network _test not found
Run Code Online (Sandbox Code Playgroud)

调用函数的事务响应

这个错误以前从未发生过。但不知何故,在重新安装 docker 和 Hyperledger Fabric 后,fabric-samples它似乎从未找到网络_test

注意:在重新安装网络名称之前net_test。但是现在当我尝试时,docker network ls它显示了一个名为docker_test. 我正在使用适用于 …

docker hyperledger hyperledger-fabric docker-network

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

使docker容器只能从某个IP访问

现在,当我将 docker 容器端口绑定到我的计算机上的端口时,可以通过属于我的计算机的每个 IP 地址访问它。

我知道这一点是因为我尝试使用 Docker 主机的静态 LAN IP 地址通过另一台计算机连接到该端口。

我想限制该特定容器只能由我的 docker 主机(127.0.0.1 或 localhost)访问。当我将 Web 服务器的 IP 更改为 localhost 时,我的 docker 主机将无法访问它(可能是因为这使其位于容器本地,而不是主机)。

如何使 docker 容器成为主机本地的?

docker docker-compose docker-network

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

打开 VPN 的测试容器:无法连接到 localhost:49198 的 Ryuk

我在 Java/maven 项目中使用 Testcontainer 进行单元测试和集成测试。测试按预期进行,直到我运行我用来工作的 VPN。使用 VPN,我可以看到错误消息“Can not connect to Ryuk at localhost:49198”

以下是完整的日志:

Connected to the target VM, address: '127.0.0.1:50813', transport: 'socket'
2022-10-03 18:01:49.728  INFO   --- [           main] o.t.d.DockerClientProviderStrategy       : Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
2022-10-03 18:01:50.280  INFO   --- [           main] o.t.d.DockerClientProviderStrategy       : Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
2022-10-03 18:01:50.282  INFO   --- [           main] org.testcontainers.DockerClientFactory   : Docker host IP address is localhost
2022-10-03 18:01:50.308  INFO   --- [           main] org.testcontainers.DockerClientFactory   : Connected to docker: …
Run Code Online (Sandbox Code Playgroud)

java docker-network testcontainers

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

当容器在localhost接口上侦听时Docker端口转发不起作用

我有无法解决的端口转发问题。我在VM中运行Linux,并且正在使用该VM中的docker。例如,当我尝试从docker compose设置端口转发时:

ports:
   - "3080:3080"
Run Code Online (Sandbox Code Playgroud)

它仅在容器中运行的应用程序正在侦听0.0.0.0:3080的情况下起作用。问题是,我正在码头化的大多数应用程序都在监听localhost。0.0.0.0以外的任何接口都会导致端口转发不起作用。您是否知道为什么会这样或如何解决?

我在跑:

Docker版本17.05.0-CE,内部版本89658be

docker-compose版本1.17.1,构建未知

谢谢

PS我发现了一个临时的解决方法。我为容器指定了网络模式“主机”,强制容器使用主机OS网络,但是这种方法在MacOS上不起作用。

docker docker-compose docker-networking docker-network

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