Когда дело доходит до управления технологиями и ресурсами, верно, что не все может быть больше и лучше, и это особенно верно, когда речь идет об управлении образами Docker. По мере увеличения размера изображения растут и расходы на облачное хранилище, а также затраты на эксплуатацию и обслуживание. Поэтому эффективное уменьшение размера образов Docker имеет решающее значение для снижения затрат и повышения эффективности.
Например, если взять в качестве примера изображение hcymysql/mysql_slowquery:2024-07-04, исходный размер файла достигает 3,53 ГБ. В этом случае используйте Docker-slim Инструменты позволяют значительно оптимизировать изображения и уменьшить занимаемое ими пространство для хранения и ресурсы. Эта оптимизация может не только сэкономить затраты на облачное хранилище, но и ускорить процесс развертывания и передачи изображений, повышая общую эффективность и производительность.
Таким образом, можно не только эффективно управлять потреблением ресурсов, но также улучшить ремонтопригодность и масштабируемость всей системы, что является неотъемлемой частью современной среды облачных вычислений.
shell> wget https://github.com/slimtoolkit/slim/releases/download/1.40.11/dist_linux.tar.gz
shell> tar zxvf dist_linux.tar.gz
shell> cd dist_linux
shell> ./docker-slim build \
--http-probe=false \
--expose 80 \
--expose 3306 \
--include-path=/var/www/html \
--include-path=/var/log/httpd \
--include-path=/run/httpd \
--include-path=/tmp \
--include-path=/data \
--include-path=/etc \
--include-path=/usr/ \
--include-path=/sbin/ \
--include-path=/root/ \
--include-path=/bin/ \
--include-bin=/usr/sbin/httpd \
--include-bin=/usr/libexec/mysqld \
--include-bin=/usr/bin/php \
--include-bin=/usr/bin/systemctl \
--include-bin=/bin/bash \
--cmd "/usr/sbin/init" \
<IMAGE ID>
1 ./docker-slim build
:
Это работает docker-slim
построить новый оптимизированный Docker Основная команда для зеркалирования.
2. --http-probe=false
:
Отключите HTTP-зондирование. HTTP-зонды используются для автоматического обнаружения и включения любых зависимостей, необходимых для конечных точек HTTP, предоставляемых контейнером.
установите его на false
Отключите это поведение.
3. --expose 80
и --expose 3306
:
Явно раскрыть порт 80 (обычно используется для HTTP)и 3306 (обычно используется для MySQL). Это делается для того, чтобы сделать эти порты доступными для внешнего мира.
4. --include-path=<path>
:
Укажите пути в файловой системе, которые будут включены в оптимизированный образ. Перечисленные пути:
/var/www/html
:обычно Web Корневой каталог сервера. /var/log/httpd
:Включать HTTP Каталог для журналов сервера. /run/httpd
:HTTP Каталог, используемый сервером при работе. /tmp
:Временное хранилище файлов。 /data
:общий каталог данных。 /etc
:Конфигурационный файл。 /usr/
:пользовательские двоичные файлыипрограмма。 /sbin/
:Системные двоичные файлы。 /root/
:root Домашний каталог пользователя. /bin/
:Базовые двоичные файлы команд。5. --include-bin=<binary>
:
Укажите один двоичный файл, который будет включен в оптимизированное изображение. Перечисленные двоичные файлы:
/usr/sbin/httpd
:Apache HTTP сервер. /usr/libexec/mysqld
:MySQL сервер. /usr/bin/php
:PHP устный переводчик. /usr/bin/systemctl
:Systemd Менеджер сервиса. /bin/bash
:Bash shell。6. --cmd "/usr/sbin/init"
:
Укажите команду, которая будет выполняться при запуске контейнера. В данном случае это init
Процесс, который является первым процессом, запускаемым ядром, и является предком всех остальных процессов.
7. 7b0278943ae0
:
Это нужно оптимизировать Docker зеркальный ID。docker-slim
Это изображение будет использоваться в качестве основы для создания уменьшенной и более оптимизированной версии.
Docker-slim это мощный инструмент, который можно использовать без изменения Docker содержимое изображения контейнера, уменьшите его до 30 раз. Он использует расширенную аналитику для понимания приложений и точной оптимизации контейнеров. Этот процесс оптимизации включает в себя удаление ненужных компонентов и ресурсов, тем самым уменьшая поверхность атаки контейнера и объем ресурсов. Благодаря этой точной оптимизации Docker-slim может не только эффективно экономить место для хранения и затраты на облако.,Это также может улучшить общую производительность и безопасность контейнера.