Go-Ethereum
如何使 Docker 容器與本地主機上的 geth.ipc 通信
from web3 import Web3 web3 = Web3(Web3.IPCProvider("/Ethereum/geth.ipc")) print(f'IPC connected: {web3.isConnected()}') # want to return True
我有上面的 Dockerized 腳本,我正在嘗試連接到
geth.ipc
本地主機,但我似乎無法連接到它。這是我執行 Docker 的方式:
docker run --mount type=bind,source=$HOME/Library/Ethereum,target=/Ethereum container1
我已經驗證它
geth.ipc
存在於/Ethereum
目錄中,但似乎無法連接到它。有沒有辦法做到這一點?這個問題可能與此有關,這是我最初的問題 https://stackoverflow.com/questions/52715141/how-to-make-a-docker-container-talk-to-geth-on-local-host
採用
host.docker.internal
這適用於 Docker for Mac 和 Docker for Windows。
如果您使用的是 Linux,事情會變得更加複雜。請查看https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach
如果您掛載包含 IPC 文件的文件夾而不是直接掛載該文件,它將起作用。