Docker – Wprowadzenie do konteneryzacji (cz. 3)

Publikacja obrazu w Docker Hub i uruchamianie na zewnętrznej instancji

W poprzednich częściach serii nauczyliśmy się:

  • jak stworzyć aplikację i uruchomić ją w kontenerze Dockera,
  • jak aktualizować kod i ponownie budować obraz.

Teraz pójdziemy krok dalej – opublikujemy nasz obraz w Docker Hub, aby można go było uruchomić na dowolnym komputerze lub w chmurze.

1. Tworzenie repozytorium w Docker Hub

  1. Zaloguj się na Docker Hub.
  2. Kliknij Create Repository.
  3. Podaj nazwę (np. getting-started) i ustaw repozytorium jako Public, aby inni mogli je pobrać.

2. Pushowanie obrazu do Docker Hub

a) Próba pushowania

Jeśli spróbujesz:

docker push docker/getting-started

prawdopodobnie zobaczysz błąd:

denied: requested access to the resource is denied

Dlaczego? Bo taki obraz lokalnie nie istnieje pod tą nazwą. Musimy go przygotować.


b) Logowanie do Docker Hub

Najpierw zaloguj się w terminalu:

docker login -u YOUR-USER-NAME

Podaj swoje hasło do Docker Hub.


c) Tagowanie obrazu

Musimy nadać obrazowi właściwą nazwę w formacie:

YOUR-USER-NAME/repository-name

W naszym przypadku:

docker tag getting-started YOUR-USER-NAME/getting-started

Teraz mamy lokalny obraz o nowej nazwie, zgodnej z repozytorium w Docker Hub.


d) Pushowanie obrazu

Wystarczy teraz wykonać:

docker push YOUR-USER-NAME/getting-started

Jeśli wszystko pójdzie dobrze, obraz zostanie przesłany i będzie dostępny w Twoim repozytorium.

3. Uruchamianie obrazu na nowej instancji

Spróbujmy teraz uruchomić naszą aplikację w zewnętrznym środowisku – np. w Play with Docker.

a) Otwórz Play with Docker

Zaloguj się przy użyciu swojego konta Docker Hub.

b) Utwórz instancję

Kliknij +ADD NEW INSTANCE, aby uruchomić nową maszynę z Dockerem.

c) Uruchom aplikację

W terminalu instancji wpisz:

docker run -dp 3000:3000 YOUR-USER-NAME/getting-started

Docker pobierze Twój obraz z Docker Hub i uruchomi aplikację.

d) Otwórz port

Kliknij przycisk Open Port, wpisz 3000 i potwierdź.
Twoja aplikacja powinna się otworzyć w nowej zakładce 🎉