Jedną z rzeczy jakich dostajemy dzięki funkcjom eksperymentalnym jest brak konieczności używania zewnętrznego oprogramowania do squashowania warstw w obrazie Dockera. Dzięki temu obraz zajmuje mniej miejsca i szybciej jest ściągany. A jak uruchomić te dobrodziejstwa?
Ustawienie funkcji eksperymentalnych dla deamona
aby ustawić funkcje eksperymentalne należy stworzyć plik konfiguracyjny dla deamona:
sudo mcedit /etc/docker/daemon.json # lub sudo nano /etc/docker/daemon.json # lub sudo vi /etc/docker/daemon.json
Do pliku należy wpisać zawartość jsona:
{ "experimental": true }
Oraz zrestartować usługę Dockera:
sudo service docker restart # lub sudo systemctl restart docker
Aby sprawdzić czy funkcje eksperymentalne dla serwera są włączone wystarczy wywołać polecenie (zwróć uwagę na ilość spacji po znaku ^):
docker version | grep "^ Experimental:"
Ustawienie funkcji eksperymentalnych dla klienta
Aby ustawić funkcje eksperymentalne dla klienta należy zedytować plik konfiguracyjny użytkownika. Do tego celu możemy użyć dowolnego edytora:
mcedit ~/.docker/config.json # lub nano ~/.docker/config.json # lub vi ~/.docker/config.json # lub gedit ~/.docker/config.json
Początkowa zawartość pliku może wyglądać tak ( podane dane usera i serwera są fikcyjne 😛 ):
{ "auths": { "artifactory.server.miszczyk.dev": { "auth": "aAehqtX7jWe6DHQ2o9DcP941HZMsp5GTB4OFZpfArHDOJU83", "email": "user.name@server.com" } }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.1 (linux)" }, }
To co musimy zrobić to dodać jedną linijkę informującą o odblokowaniu funkcji eksperymentalnych:
"experimental": "enabled"
Czyli docelowo nasz plik będzie wyglądał następująco:
{ "auths": { "artifactory.server.miszczyk.dev": { "auth": "aAehqtX7jWe6DHQ2o9DcP941HZMsp5GTB4OFZpfArHDOJU83", "email": "user.name@server.com" } }, "HttpHeaders": { "User-Agent": "Docker-Client/19.03.1 (linux)" }, "experimental": "enabled" }
Aby sprawdzić czy funkcje eksperymentalne klienta są uruchomione można skorzystać z poprzedniego polecenie ale skasować jedną spację po znaku ^:
docker version | grep "^ Experimental:"
Teraz możemy budować obrazy o mniejszym rozmiarze dodając do polecenia parametr squash:
docker build -t artifactory.server.miszczyk.dev/docker/test/test-image:0.1.0 --squash .
Mam nadzieję że pomogło 🙂