Opis:
Docker – otwarte oprogramowanie służące do realizacji wirtualizacji na poziomie systemu operacyjnego (tzw. „konteneryzacji”){źródło: https://pl.wikipedia.org/wiki/Docker_(oprogramowanie)}
Aplikacja w swoim działaniu przypomina opisywanego wcześniej VirtualBox ale jest to rozwiązanie podobne tylko z pozoru. Zasada działania jest tak naprawdę zupełnie inna. VirtualBox emuluje samo urządzenie na którym instalujemy od zera system operacyjny, natomiast Docker emuluje sam system operacyjny. Oczywiście ma to w takim wypadku ograniczenia – najważniejsze to kontener z Linux możemy postawić tylko gdy system goszczący to też Linux. Nie ma możliwości postawienia kontenera z Windowsem na Linux i odwrotnie. Metoda ta natomiast ma więcej plusów niż minusów, ponieważ zyskujemy „lekkość”, nie ma potrzeby tu emulowania całej maszyny, wgrywania ponownie tych samych bibliotek – Docker korzysta z tego co ma już w systemie goszczącym. Kontenery można dowolnie konfigurować, wybierając najlepszą dystrybucję dla danego projektu, łączyć ze sobą (wydzielamy sieć widoczną dla wybranych kontenerów), udostępniać i pobierać całe gotowe obrazy projektów. Najlepszym przykładem jest tu według mnie „instalacja” serwera www.
Dodatkowo zyskujemy częściowo także na bezpieczeństwie.
Instalacja:
https://docs.docker.com/engine/install/debian/
Instalacja jest opisana krok po kroku, więc nie ma większego sensu to powtarzać.
Czynności po instalacyjne:
https://docs.docker.com/engine/install/linux-postinstall/
Warto wykonać, aby móc uruchamiać kontenery bez „sudo”. Szczególnie przydatne w przypadku późniejszej instalacji najnowszego docker compose v2.
Przydatne polecenia:
Ctrl+D
//wyjście z basha w instancji dockera
docker ps -a
//wyświetlanie instancji dockera, wszystkich
docker run -p 8080:80 nginx
// przekieruje port 8080 z zewnątrz na port 80 w instancji dockera
docker run –name moja_nazwa_instancji -p 80:80 nginx
//name nazwa
docker start moja_nazwa
// uruchomi w tle kontener
docker rm mój_kontener
// usuwa kontener jeśli ten kontener jest wyłączony
docker stop mój_kontener
// zamyka/zatrzymuje kontener o wskazanej nazwie w poprawny sposób
docker run -it –name mojkontener debian bash
// uruchomi debiana z nazwą wskazaną w trybie interaktywny bo it jako parametr, uruchomi w nim bash bo polecenie takie na końcu jest
docker run -d -it –name mojkontener debian bash
// d aby w tle
docker exec -it mojkontener bash
// wejście do kontenera w trybie interaktywnym który to jest w tle
docker run –name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
//-v daje spięcie/bind katalogu z naszego dysku /my/own/datadir z katalogiem w kontenerze
docker images
//obrazy dockera
docker rmi nazwaobrazu
// usuwanie obrazu po nazwie lub id
docker commit nazwa_obrazu nazwa_nowegoobrazu
// tworzenie obrazu z działającego obrazu już w systemie