Разверните проект с помощью dockerfile (с подробными инструкциями).
Разверните проект с помощью dockerfile (с подробными инструкциями).

что такое докер-файл

Dockerfile — это текстовый файл, содержащий все инструкции и параметры, необходимые для сборки образа Docker. Эти инструкции и параметры основаны на концепции слоев образа Docker и определяют, как начать с базового образа и, наконец, создать новый образ Docker, добавляя, изменяя файлы, устанавливая пакеты программного обеспечения, настраивая переменные среды и устанавливая команды запуска.

Нужно реализовать простойdocker buildЗаказ,Docker автоматически завершит построение зеркала согласно инструкциям в Dockerfile.

Инструкции для Dockerfile

Язык кода:javascript
копировать
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

Позволяет переопределить форму оболочки, используемую для команд.

Пример:

файл докеры

Конкретные шаги

Язык кода:javascript
копировать
1、Написание документа DockerFile
2、Docker команда сборки построить зеркало
3、docker run в соответствии сзеркалобегатьконтейнер Пример

Знакомство с взаимосвязью между DockerFile, изображениями и контейнерами.

Язык кода:javascript
копировать
1. Dockerfile — это база, которая собирает Dockerзеркало.,DockerчитаяDockerfileсерединаинструкции,Выполните соответствующие операции (например, добавление документа, установку пакетов программного обеспечения, настройку переменных среды и т. д.).,Наконец создайте зеркало
2. Docker зеркало — это база Docker-контейнера.,docker При сборке будет создано зеркало Docker. Docker фактически начнет предоставлять услуги, когда зеркало
3、Dockerконтейнер,в соответствии сзеркалобегать(docker запустить) контейнер предоставляет услуги

Практическая работа, развертывание проекта CVE

CVE-2023-26469

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.

Docker извлекает базовый образ MySQL

Найдите это на докерхабе

Язык кода:javascript
копировать
адрес докерхаба: https://hub.docker.com/
Язык кода:javascript
копировать
docker pull mysql:5.6.34

Версия базы данных — 5.6.34, а переключатель версии находится в файле docker-compose.yml.

Язык кода:javascript
копировать
1) Первый способ, непосредственно vi docker-compose.yml 
2) Второй метод — использовать xftp для экспорта sql-документа на рабочий стол окна. После изменения используйте xftp, чтобы загрузить его напрямую, чтобы перезаписать предыдущий.

Docker извлекает базовую среду изображения PHP

Посмотреть файл докеры

Язык кода:javascript
копировать
docker pull php:7.4-apache

Загрузить исходный код

Создайте новый каталог и загрузите исходный код Jorani в новый каталог через xftp.

Язык кода:javascript
копировать
mkdir Jorani

Разархивируйте сжатый пакет

Язык кода:javascript
копировать
unzip jorani-1.0.0.zip

Просмотрите файл Docker-compose.yml.

бегать

В каталоге jorani проект

Язык кода:javascript
копировать
docker-compose up

Подскажите ошибку базы данных

При импорте данных выполнение SQL завершается сбоем. Поскольку при определении функции имеется синтаксическая ошибка, возможно, проблема связана с версией базы данных. Базу данных предыдущей версии 5.0 сейчас невозможно найти. Поэтому потребовалось время, чтобы разобраться с синтаксическими проблемами. В основном функция преобразования строки в INT, CAST('' AS INT) заменена на CAST('' AS SIGNED)

Изменить sql-файл

Язык кода:javascript
копировать
1) Первый способ, непосредственно vimизменятьsqldocument
2) Второй метод — использовать xftp для экспорта sql-документа на рабочий стол окна. После изменения используйте xftp, чтобы загрузить его напрямую, чтобы перезаписать предыдущий.

бегать

Язык кода:javascript
копировать
docker-compose up Интерактивный старт

docker-compose up -d Запустить в фоновом режиме

Используйте docker-compose up для интерактивного запуска. С журналами проблем нет, и к странице можно получить доступ в обычном режиме.

Это порт 80, поэтому доступ к странице возможен напрямую по IP.

Потому что мы уже отладили,без проблем,Будьте формальнымиразвертывать,развертывать Нужно было включитьконтейнер Хочу удалить。иdown Контейнеры можно удалять и уничтожать.

Язык кода:javascript
копировать
docker-compose down 
docker ps -a Проверятьконтейнер

развертывать

Язык кода:javascript
копировать
docker-compose up -d Запустить в фоновом режиме

миграция образов Docker

docker save -o — сохранить изображение в виде файла в указанном вами формате имени файла. Например: docker save -o mysql5.zip mysql:5 сохраните изображение как mysql5.zip

docker load -i — загрузить экспортированное изображение обратно, например: docker load -i mysql5.zip

весь этот процесс,Это называется миграция образов Docker. Миграция с одной машины на другую,В то же время гарантируется консистенция Базазеркало.

Если вам нужно перенести jorani, вам необходимо перенести весь исходный код, среду PHP и среду MySQL.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose