Docker – uruchomienie funkcji eksperymentalnych

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 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *