что такое докер-файл
Dockerfile — это текстовый файл, содержащий все инструкции и параметры, необходимые для сборки образа Docker. Эти инструкции и параметры основаны на концепции слоев образа Docker и определяют, как начать с базового образа и, наконец, создать новый образ Docker, добавляя, изменяя файлы, устанавливая пакеты программного обеспечения, настраивая переменные среды и устанавливая команды запуска.
Нужно реализовать простойdocker build
Заказ,Docker автоматически завершит построение зеркала согласно инструкциям в Dockerfile.
Инструкции для Dockerfile
1、Инструкции по сборке: Собрать зеркало, указанная операция не будет выполняться в контейнере образа.
2. Инструкции по установке: установите атрибуты зеркала, и указанная операция будет выполнена в контейнере изображения.
Базовая структура Dockerfile включает в себя:
Базовое изображение (ОТ) | Укажите базовый образ, используемый для создания нового образа. Первой инструкцией в Dockerfile должна быть инструкция FROM. |
---|---|
Установить рабочий каталог (WORKDIR) | Указывает рабочий каталог для последующих инструкций. |
Копирование файлов (КОПИРОВАТЬ/ДОБАВИТЬ) | Скопируйте файл или каталог в изображение. Команда ADD также может автоматически распаковывать сжатые файлы, но из соображений безопасности обычно рекомендуется использовать команду COPY. |
Установить пакет (RUN) | существоватьзеркалосерединабегать Заказ,нравиться Установить пакеты. Команда RUN часто используется для установки зависимостей. программ и т.д. |
Настройка переменных среды (ENV) | Установить переменные среда, используемая программой запуска в зеркале. |
Открытый порт (EXPOSE) | Объявляет, какой порт контейнера будет использоваться приложением запуска в зеркале. но,Это не приводит к автоматическому прослушиванию порта на хосте.,Вместо этого вам нужно указать его через параметр -p или -P при запускеконтейнера. |
команда запуска контейнера (CMD) | Dockerfile может содержать несколько инструкций CMD, но вступает в силу только последняя. Инструкции CMD могут быть переопределены параметрами в командной строке запуска Docker. |
Настройте исполняемый документ (ENTRYPOINT) запуска при запуске контейнера. | В отличие от CMD, инструкции CMD будут передаваться в качестве параметров в ENTRYPOINT. |
Порт для прослушивания при объявлении контейнера запускать (EXPOSE). | Простое утверждение об этом не означает, что порт автоматически будет предоставлять услуги внешнему миру. |
LABEL | Добавьте метаданные к изображению |
ENV | Установить переменные среды |
VOLUME | Создайте точку монтирования, которую можно будет подключить с локального хоста или других контейнеров. Обычно она используется для хранения баз данных и данных, которые необходимо обслуживать. |
USER | Имя пользователя или UID при указании разработчикконтейнера |
HEALTHCHECK | Используется для указания команды для проверки состояния работоспособности контейнера. |
SHELL | Позволяет переопределить форму оболочки, используемую для команд. |
Пример:
файл докеры
Конкретные шаги
1、Написание документа DockerFile
2、Docker команда сборки построить зеркало
3、docker run в соответствии сзеркалобегатьконтейнер Пример
Знакомство с взаимосвязью между DockerFile, изображениями и контейнерами.
1. Dockerfile — это база, которая собирает Dockerзеркало.,DockerчитаяDockerfileсерединаинструкции,Выполните соответствующие операции (например, добавление документа, установку пакетов программного обеспечения, настройку переменных среды и т. д.).,Наконец создайте зеркало
2. Docker зеркало — это база Docker-контейнера.,docker При сборке будет создано зеркало Docker. Docker фактически начнет предоставлять услуги, когда зеркало
3、Dockerконтейнер,в соответствии сзеркалобегать(docker запустить) контейнер предоставляет услуги
Практическая работа, развертывание проекта CVE
CVE-2023-26469:существовать Jorani 1.0.0 Критическая уязвимость, позволяющая удаленно выполнять код в
Скачать Джорани 1.0.0
Адрес загрузки: https://github.com/bbalet/jorani/releases.
Разархивируйте, вот файл docker-compose.yml, Docker вам не нужен команда сборки построить зеркало,Автоматизируйте развертывание с помощью DockerCompose.
dockerразвертыватьсреда
Требуется базовая зеркальная среда php7 и mysql5.6.
Найдите это на докерхабе
адрес докерхаба: https://hub.docker.com/
docker pull mysql:5.6.34
Версия базы данных — 5.6.34, а переключатель версии находится в файле docker-compose.yml.
1) Первый способ, непосредственно vi docker-compose.yml
2) Второй метод — использовать xftp для экспорта sql-документа на рабочий стол окна. После изменения используйте xftp, чтобы загрузить его напрямую, чтобы перезаписать предыдущий.
Посмотреть файл докеры
docker pull php:7.4-apache
Создайте новый каталог и загрузите исходный код Jorani в новый каталог через xftp.
mkdir Jorani
Разархивируйте сжатый пакет
unzip jorani-1.0.0.zip
Просмотрите файл Docker-compose.yml.
бегать
В каталоге jorani проект
docker-compose up
Подскажите ошибку базы данных
При импорте данных выполнение SQL завершается сбоем. Поскольку при определении функции имеется синтаксическая ошибка, возможно, проблема связана с версией базы данных. Базу данных предыдущей версии 5.0 сейчас невозможно найти. Поэтому потребовалось время, чтобы разобраться с синтаксическими проблемами. В основном функция преобразования строки в INT, CAST('' AS INT) заменена на CAST('' AS SIGNED)
1) Первый способ, непосредственно vimизменятьsqldocument
2) Второй метод — использовать xftp для экспорта sql-документа на рабочий стол окна. После изменения используйте xftp, чтобы загрузить его напрямую, чтобы перезаписать предыдущий.
docker-compose up Интерактивный старт
docker-compose up -d Запустить в фоновом режиме
Используйте docker-compose up для интерактивного запуска. С журналами проблем нет, и к странице можно получить доступ в обычном режиме.
Это порт 80, поэтому доступ к странице возможен напрямую по IP.
Потому что мы уже отладили,без проблем,Будьте формальнымиразвертывать,развертывать Нужно было включитьконтейнер Хочу удалить。иdown Контейнеры можно удалять и уничтожать.
docker-compose down
docker ps -a Проверятьконтейнер
docker-compose up -d Запустить в фоновом режиме
docker save -o — сохранить изображение в виде файла в указанном вами формате имени файла. Например: docker save -o mysql5.zip mysql:5 сохраните изображение как mysql5.zip
docker load -i — загрузить экспортированное изображение обратно, например: docker load -i mysql5.zip
весь этот процесс,Это называется миграция образов Docker. Миграция с одной машины на другую,В то же время гарантируется консистенция Базазеркало.
Если вам нужно перенести jorani, вам необходимо перенести весь исходный код, среду PHP и среду MySQL.