Docker: Pierwsze kroki
Jak rozpocząć pracę z Stackhero dla Docker
👋 Witamy w dokumentacji Stackhero!
Stackhero oferuje gotowe do użycia rozwiązanie Docker cloud CaaS (Containers as a Service), które zapewnia wiele korzyści, w tym:
- Łatwe wdrażanie kontenerów do produkcji za pomocą prostego
docker-compose up.- Dostosowywana nazwa domeny zabezpieczona HTTPS (na przykład, https://api.twoja-firma.com, https://www.twoja-firma.com, https://backoffice.twoja-firma.com).
- Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.
- Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Docker CaaS cloud hosting Stackhero i wdrożyć swoje kontenery do produkcji!
Jak używać Docker CLI zdalnie
Docker CLI powinien być zainstalowany na Państwa komputerze. Jeśli nie został jeszcze zainstalowany, można go pobrać tutaj: https://www.docker.com/products/docker-desktop/.
Dzięki Stackhero dla Docker można połączyć się z serwerem Docker zdalnie z Państwa komputera, tak jakby pracowali Państwo lokalnie. Ta konfiguracja pozwala na utrzymanie zwykłego przepływu pracy, jednocześnie zapewniając solidny sposób zarządzania kontenerami w produkcji.
Aby to osiągnąć, wykorzystywane są "konteksty" Docker. Konteksty Docker pozwalają na użycie Docker CLI na Państwa komputerze i określenie, gdzie polecenia mają być wykonywane: na lokalnym demonie Docker (jak zwykle) lub na instancji Stackhero dla Docker.
Instalacja certyfikatów Docker
Aby połączyć się zdalnie z instancją Stackhero dla Docker, najpierw trzeba zainstalować jej certyfikaty. Certyfikaty te zapewniają bezpieczne uwierzytelnianie i szyfrowanie między Państwa komputerem a instancją Stackhero dla Docker.
Na Państwa komputerze można użyć następującego polecenia:
# HOST to nazwa domeny Państwa instancji Stackhero dla Docker (<XXXXXX>.stackhero-network.com).
# SERVICE_ID to Państwa ID usługi Stackhero.
# CERTIFICATES_PASSWORD to hasło zdefiniowane w konfiguracji Stackhero dla Docker.
(export HOST="<XXXXXX>.stackhero-network.com"
export SERVICE_ID="<SERVICE_ID>"
export CERTIFICATES_PASSWORD="<CERTIFICATES_PASSWORD>"
cd /tmp/ \
&& curl -o certificates.tar https://docker:$CERTIFICATES_PASSWORD@$HOST/stackhero/docker/certificates.tar \
&& tar -xf certificates.tar \
&& (docker context rm -f $HOST 2> /dev/null || true) \
&& docker context create $HOST \
--description "$SERVICE_ID ($HOST)" \
--docker "host=tcp://$HOST:2376,ca=ca.pem,cert=cert.pem,key=key.pem")
Stworzyli Państwo teraz kontekst Docker nazwany po nazwie domeny Państwa usługi. Aby zobaczyć wszystkie swoje konteksty, można uruchomić polecenie docker context ls.
Jeśli zaktualizują Państwo domenę usługi, certyfikaty ulegną zmianie i trzeba będzie je ponownie zainstalować.
Uruchamianie kontenerów Docker zdalnie
Obecnie, jeśli wylistują Państwo swoje kontenery za pomocą polecenia docker ps, Państwa Docker CLI użyje lokalnego demona Docker, wyświetlając kontenery działające na Państwa komputerze.
Na przykład, można uruchomić to polecenie, aby uzyskać publiczny adres IP demona Docker: docker run --rm alpine wget -q -O - ifconfig.me. Ponieważ kontener działa na Państwa komputerze, zobaczą Państwo adres IP swojego routera internetowego jako odpowiedź.
Zmieńmy kontekst Docker, aby używać instancji Stackhero dla Docker. Wystarczy uruchomić polecenie docker context use <XXXXXX>.stackhero-network.com. Teraz polecenia Docker inicjowane na Państwa komputerze będą wykonywane bezpiecznie na zdalnym demonie Docker.
Uruchom ponownie to samo polecenie, aby odzyskać publiczny adres IP demona Docker: docker run --rm alpine wget -q -O - ifconfig.me. Powinni Państwo teraz zobaczyć publiczny adres IP instancji Stackhero dla Docker, co potwierdza, że kontener działa na Państwa serwerze, a nie na komputerze.
Aby powrócić do używania lokalnego demona Docker, wystarczy ponownie przełączyć kontekst Docker na "default": docker context use default.
Kiedy montują Państwo wolumen na zdalnym kontenerze, dostępne dane będą tymi na zdalnym serwerze, a nie na Państwa komputerze. Dlatego uruchomienie polecenia takiego jak
docker run -it -v ${PWD}:/mnt alpinenie zamontuje katalogu z Państwa komputera, jak można by się spodziewać.
Wdrażanie z Docker-Compose
Podobnie jak Docker CLI, Docker-compose CLI użyje Państwa bieżącego kontekstu. Dlatego, gdy przełączą się Państwo na zdalną instancję za pomocą docker context use <XXXXXX>.stackhero-network.com, każde polecenie Docker-compose również wykona się na zdalnej instancji.
Użycie polecenia
docker contextjest skuteczne, ale może nie być najlepszym podejściem przy obsłudze kontekstów w skryptach lub Makefiles. W takich przypadkach warto rozważyć użycie zmiennej środowiskowejDOCKER_CONTEXT, która jest szczegółowo opisana na naszych stronach dokumentacji zaawansowanej.