Thank you for reading this post, don't forget to subscribe!
Перейдите в репозиторий DockerSlim GitHub в разделе «INSTALLATION»:
https://github.com/docker-slim/docker-slim
и скачайте последние бинарники для своей системы.
DockerSlim в настоящее время может работать только в системах Linux и UNIX (включая Mac).
Установка DockerSlim на Linux
wget https://downloads.dockerslim.com/releases/1.34.0/dist_linux.tar.gz
mv dist_linux/* /usr/local/bin
Использование DockerSlim для минимизации и оптимизации контейнеров Docker
Мы можем проверить размер загруженного образа с помощью следующей команды:
$ docker images nginx:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 519e12e2a84a 2 hours ago 133MB
Теперь мы можем создать оптимизированный образ с помощью команды:
$ docker-slim build --target nginx:latest
Пример вывода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
..... cmd=build info=event message='HTTP probe is done' cmd=build state=container.inspection.finishing cmd=build state=container.inspection.artifact.processing cmd=build state=container.inspection.done cmd=build state=building message='building optimized image' cmd=build state=completed cmd=build info=results status='MINIFIED BY 12.00X [133108601 (133 MB) => 11089969 (11 MB)]' cmd=build info=results image.name=nginx.slim image.size='11 MB' data=true cmd=build info=results artifacts.location='/tmp/docker-slim-state/.docker-slim-state/images/519e12e2a84a9eb18094635ae1edfd97b26f95dbc66e317eefb657a1cb08c8dc/artifacts' cmd=build info=results artifacts.report=creport.json cmd=build info=results artifacts.dockerfile.original=Dockerfile.fat cmd=build info=results artifacts.dockerfile.new=Dockerfile cmd=build info=results artifacts.seccomp=nginx-seccomp.json cmd=build info=results artifacts.apparmor=nginx-apparmor-profile cmd=build state=done cmd=build info=commands message='use the xray command to learn more about the optimize image' |
В выходных данных выше указано, что образ был уменьшен с 133 МБ до 11 МБ.
Это в 12 раз!
Мы можем подтвердить это, проверив размер нового образа.
$ docker images nginx.slim
Вывод:
1 2 3 |
$ docker images nginx.slim REPOSITORY TAG IMAGE ID CREATED SIZE nginx.slim latest 98bc8a53012f 3 minutes ago 11.1MB |
Теперь мы можем создать контейнер из нового образа и посмотреть, может ли он правильно функционировать как исходный.
$ docker run -it -d --name slim-webserver -p 86:80 nginx.slim
В приведенной выше команде мы запустили контейнер в автономном режиме (-d), имя которого – slim-webserver, и открыли 80 -ый порт контейнера на 86-ый порт хоста.
Мы также использовали nginx.slim в качестве образа.
Проверить статус контейнера можно с помощью команды docker ps -a.
1 2 3 |
docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7d29874994ee nginx.slim "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:86->80/tcp slim-webserver |
Мы можем получить доступ к веб-серверу через порт 86 хоста.