我正在嘗試使用docker stack部署來部署節點應用程序。我想這應該是顯而易見的,但是如何從節點應用程序連接到數據庫?如何連接到Docker堆棧部署中的容器
這是我的示例碼頭文件 - 我還沒有解決縮放每個服務,只是試圖連接的一切。鑑於這個文件,如果我docker stack deploy --compose-file docker-compose.yml dev
- 那麼連接字符串連接節點到mongo的正確的mongo地址是什麼?
version: '3'
services:
node:
image: rgilling/rsc:latest
ports:
- "8080:8080"
networks:
- "core"
- "front"
logging:
driver: "json-file"
options:
max-size: "500k"
max-file: "10"
db1:
image: mongo:latest
ports:
- "27017:27017"
command: mongod
networks:
- core
logging:
driver: "json-file"
options:
max-size: "500k"
max-file: "10"
search1:
image: docker.elastic.co/elasticsearch/elasticsearch:5.3.0
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
cap_add:
- IPC_LOCK
volumes:
- ../../elastic/config/search1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- ../../elastic/config/log4j2.properties:/usr/share/elasticsearch/config/log4j2.properties
- ../../elastic/logs/search1:/usr/share/elasticsearch/logs/search1
- ../../elastic/data/search1:/usr/share/elasticsearch/data/search1
ports:
- 9200:9200
networks:
- core
logging:
driver: "json-file"
options:
max-size: "500k"
max-file: "2"
kibana:
image: docker.elastic.co/kibana/kibana:5.3.0
hostname: test-rep
volumes:
- ../../kibana/config/systest.yml:/usr/share/kibana/config/kibana.yml
networks:
- core
ports:
- "5601:5601"
depends_on:
- search1
logging:
driver: "json-file"
options:
max-size: "500k"
max-file: "10"
mail:
image: mailhog/mailhog
hostname: test-mail
networks:
- core
ports:
- "8025:8025"
- "1025:1025"
logging:
driver: "json-file"
options:
max-size: "500k"
max-file: "10"
networks:
core:
driver: overlay
front:
driver: overlay
我有一些無關的問題阻止了我進行測試,但是當我運行堆棧部署時,它會說:「忽略不支持的選項:cap_add,鏈接」 - 您確定鏈接適用於堆棧部署嗎? –
沒關係,我得到它的工作。對於任何感興趣的人來說,地址確實是db1,但我不認爲「鏈接」可用於堆棧部署。有一種稱爲路由網格的服務,將地址路由到任何運行該服務的容器(在自動調節的情況下)。我還沒有嘗試過像使用dns那樣更高級的東西,但是也許在docker-compose中使用'hostname'選項仍然可以用於堆棧部署 - 我沒有嘗試過。 –
錯誤的答案,正如文檔所述:'鏈接不支持docker stack部署或部署密鑰.' –