我有兩個worker節點:worker1和worker2以及一個swarm manager。我只在工作節點中運行所有服務。我需要從經理docker exec運行以訪問在工作節點中創建的一些容器,但我一直得知該服務無法識別。我知道我可以在任何工作節點上運行docker exec,並且它工作正常,但我不想找到服務運行在哪個節點上,然後ssh到指定節點運行docker exec命令。是否有辦法在羣體中這樣做?從swarm manager運行docker exec
2
A
回答
6
Swarm模式目前沒有辦法在正在運行的任務上運行exec。你需要找到容器並在主機上運行exec。您可以將工作人員配置爲擁有他們監聽的TLS保護端口,這將爲您提供遠程訪問(請參閱docker's guide)。您可以通過檢查docker service ps $service_name
的輸出來查找服務中每個任務的節點。
1
如果這有幫助,現在您可以使用--attachable
標誌創建覆蓋網絡,以啓用任何容器加入網絡。這是一個很棒的功能,因爲它具有很大的靈活性。
E.g.
$ docker network create --attachable --driver overlay my-network
$ docker service create --network my-network --name web --publish 80:80 nginx
$ docker run --network=my-network -ti alpine sh
$ wget -qO- web
<!DOCTYPE html>
<html>
<head>
....
相關問題
- 1. Docker swarm manager pending status
- 2. Docker swarm-manager顯示舊容器信息
- 3. 「swarm master」和「swarm manager」有什麼區別?
- 4. Docker swarm NFS卷,
- 5. Docker Swarm Overlay VIP
- 6. Docker Swarm - 等效docker命令
- 7. docker-compose swarm沒有docker-machine
- 8. 如何在swarm管理器所在的機器上運行docker swarm節點?
- 9. Docker Swarm筏一致
- 10. Docker with Compose和Swarm
- 11. Docker Swarm JDBC連接
- 12. Docker Swarm共享卷
- 13. Ceph上的Docker Swarm
- 14. 如何自動將已停用的Docker Swarm Manager替換爲至少有x個管理器正在運行?
- 15. 使用exec從Docker容器上的主機運行腳本
- 16. 使用docker-machine進行安裝Swarm
- 17. 從Azure fails中的Cloud創建Docker Swarm
- 18. 使用UPC管理Swarm運行羣集的docker環境
- 19. Force Docker Swarm容器分發
- 20. Docker swarm,Consul和Spring Boot
- 21. docker swarm的負載均衡
- 22. Docker Swarm和私有IP
- 23. 集羣Docker Swarm主機
- 24. 從PHP EXEC運行的LibreOffice()
- 25. 從exec運行java -jar
- 26. 使用Docker遠程API運行exec時出錯500
- 27. 運行相當於「docker exec -ti {container} curl」的Java代碼
- 28. 用xargs命令使用docker exec運行`bash`
- 29. 運行時Docker OSX端口映射錯誤:exec
- 30. 將exec-opt native.cgroupdriver更改爲「cgroupfs」時,docker無法正確運行?
也許你想添加註釋,這個功能已經被兩個問題追蹤:[github.com - MOBY/MOBY - 碼頭工人服務的exec(https://github.com/moby/moby/issues/ 27552) 和[github.com - docker/swarmkit - 支持執行任務](https://github.com/docker/swarmkit/issues/1895) – Murmel