使用es-hadoop插件連接docker橋接網絡佈置的es導出數據到hive失敗,報錯顯示無法連接到docker容器的ip,於是打算將docker容器的網絡模式設置成host模式。
想要使用host網絡模式和docker-compose up -d啓動docker容器時報錯:
ERROR: for bin_es_1 Network-scoped alias is supported only for containers in user defined networks
翻譯爲:僅支持用戶定義網絡中的容器的網絡範圍別名
百度無果,官網查詢:
使用內置網絡的語法如host
和none
有點不同。使用名稱host
或none
(Docker已自動創建)和Compose可以使用的別名(hostnet
或nonet
在以下示例中)定義外部網絡,然後使用別名授予對該網絡的服務訪問權限。
即按如下方法修改docker-compose.yml
version: '3.7'
services:
web:
networks:
hostnet: {}
networks:
hostnet:
external: true
name: host
按上述方法修改,無果
修改docker-compose.yml
services:
network_mode: "host"
使用docker-compose up -d
啓動容器,再次測試連接,成功