2015-05-13 9 views
24

Czy maszyny dokuj ące utworzone z jednej stacji roboczej dewelopera za pomocą poleceń maszyny dokuj ą cej, mogą być zarządzane z innej stacji roboczej. Nie szukam rozwiązania obejmującego roota w doku, ale tylko maszynę dokowa.Zarządzanie zdalnymi maszynami dokuj ącymi z wielu maszyn programistycznych

Z mojego zrozumienia, kiedy maszyna-doker tworzy maszynę w środowisku zdalnym, takim jak AWS EC2, tworzy klucze i certyfikaty, które są następnie używane do komunikacji w oparciu o TLS do maszyny w przyszłości. Dlatego teoretycznie, jeśli skopiuję te klucze i certyfikaty na inny komputer programisty, powinienem móc połączyć się z tym zdalnym komputerem dokowanym.

Chciałbym jednak wiedzieć, czy jest to oczekiwana metoda osiągnięcia tego, co chcę zrobić. IMO będzie to scenariusz, w którym większość społeczności dockerów może stanąć w obliczu, ponieważ wielu członków zespołu będzie musiało udostępniać i zarządzać tym samym zdalnym komputerem dokowanym.

Wszelkie wskazówki w tej sprawie byłyby naprawdę docenione.

+0

Każdy powód, dla którego chcesz udostępnić hosta docker dla rozwoju? Łatwiej jest każdemu deweloperowi mieć własne vm do zarządzania dokiem, ale wybierz tańsze typy instancji i upewnij się, że niszcz/zatrzymaj instancje, jeśli nie są używane. – number5

+0

Dziękuję za odpowiedź. Zamierzałem scenariusz wykraczający poza fazę rozwoju produktu, ale wdrożenie do produkcji. Po utworzeniu zdalnej maszyny dokujĘ ... cej ze stacji roboczej, w jaki sposób możemy zdalnie obsłużyć ten automat dokujĘ ... cy z innego komputera na stacji roboczej? – frameworksnow

+0

udało Ci się znaleźć sposób, aby to zadziałało? – dcohenb

Odpowiedz

22

Korzystając z komunikacji opartej na protokole TLS, okno dokowane korzysta z dwukierunkowej weryfikacji SSL. Innymi słowy, klient nie tylko weryfikuje serwer, ale także odwrotnie. Tworząc maszynę dokowy z włączoną obsługą TLS stajesz się własnym urzędem certyfikacji (CA), a tym samym jesteś odpowiedzialny za zarządzanie certyfikatami SSL. Maszyna Docker robi to za kulisami, ale uważam, że możesz ręcznie ustawić auto-podpisany urząd certyfikacji i ponownie wskazać Docker, aby używał skonfigurowanych certyfikatów i kluczy. Dlatego zamiast udostępniać pojedynczy certyfikat i klucz do wszystkich stacji roboczych programistów, należy wydać unikatowy certyfikat i klucz prywatny dla każdego programisty podpisanego przez klucz prywatny CA. Jedyną rzeczą, którą każdy musi udostępnić, jest certyfikat CA, który jest publiczny.

Zaletą tego jest możliwość cofnięcia certyfikatu po odejściu programisty, chociaż jest to trudne w przypadku certyfikatów z podpisem własnym, a także zapewnia odpowiedzialność, dzięki której można sprawdzić, kto zrobił co z dzienników.

Docker TLS setup.

Becoming your own CA tutorial and certificate revocation

+0

Ahh tak :) Jest to świetna informacja dla każdego, kto martwi się zarządzaniem zdalnymi Docker Hostami w nowszych wersjach Docker Engine! TL; DR; SSL zabezpieczone :) –

+0

Dziękuję @Daniel za wyjaśnienie. Właśnie tego szukałem. Nadal jestem zaskoczony, że dokowanie nie zawierało podpolecenia do maszyny-dokowania, aby osiągnąć to samo. – frameworksnow

+5

Powyższe pytanie przez @ number5 sprawia, że ​​zastanawiam się, czy być może maszyna dokujaca jest niewłaściwym sposobem wdrożenia? Ale wydaje mi się, że powinienem móc kopiować certyfikaty z '~/.docker/machine/certs' i' ~/.docker/machine/machines/... 'na inną maszynę, prawda? Czy brakuje mi czegoś, co sprawiłoby, że byłoby to niebezpieczne?Unikam kopiowania 'default', ponieważ zawiera ono całe ISO boot2docker. –

2

Jest zewnętrznym narzędziem import/eksport Döcker-maszyn: machine-share.

machine-export <machine-name> 
>> exported to <machine-name>.zip 
machine-import <machine-name>.zip 
>> imported 

Tak na marginesie, uważam, że rozwiązanie Daniela jest lepsza, ale wymaga znacznych inwestycji w narzędzia/workflow. machine-export powinno wystarczyć w 95% przypadków.

Powiązane problemy