Docker LNMP позволяет создать среду для разработки на PHP с использованием Docker. Преимущества включают быстрое создание различных версий связанных сервисов, унифицированное размещение среды на разных серверах и возможность сосредоточиться на разработке бизнес-логики.
docker-lnmp
|----/build Директория для сборки образов
|----/work Директория для хранения данных
|--------/components/ Библиотека компонентов
|------------/component Компонент, включающий данные, конфигурационные файлы, логи и другие данные для хранения
|-----------------/config Конфигурационные файлы компонента
|-----------------/log Логи компонента
|--------/wwwroot Директория для веб-файлов
|----/.env-example Пример конфигурационного файла
|----/docker-compose.yml Конфигурационный файл docker-compose
cd ~/
git clone https://gitee.com/nilsir/docker-lnmp.git cd docker-lnmp
cp .env-example .env
# Настройка пароля для базы данных, часового пояса, порта и т.д.
vim .env
# Сборка образов и запуск контейнеров
sudo docker-compose up --build -d
После успешного запуска можно перейти по адресу http://localhost
# Просмотр запущенных контейнеров
sudo docker-compose ps
# Запуск части сервисов, добавив имя сервиса, если не указано, запускаются все сервисы, -d запускает в фоновом режиме
sudo docker-compose up [nginx|php72|mysql|redis] -d
# Остановка сервисов аналогично запуску
sudo docker-compose stop [nginx|php72|mysql|redis]
# Удаление всех неактивных контейнеров
sudo docker rm $(docker ps -a -q)
# Удаление всех образов, -f позволяет принудительно удалить
sudo docker rmi $(docker images -q)
# Например, добавить расширение в PHP
# 1. Изменить соответствующий файл docker-lnmp/build/php72/dockerfile
# 2. Пересобрать образ
sudo docker-compose build [php72|...]
# Редактирование файла автозагрузки при старте системы, добавьте cd /home/your/docker-lnmp && docker-compose up -d
# Обратите внимание, что здесь не используется sudo, так как сама команда выполняется от имени root
sudo vim /etc/rc.local
# Перезагрузка системы для тестирования
sudo reboot
// Подключение к MySQL
$user = "root";
$pass = "DockerLNMP";
$dbh = new PDO('mysql:host=mysql;dbname=mysql', $user, $pass);
foreach($dbh->query('SELECT * from user') as $row) {
print_r($row);
}
``` // Подключение к Redis
$redis = new Redis();
$redis->connect('redis', 6379);
$redis->set("test-key", "hello");
echo "Сохранённая строка в Redis:: " . $redis->get("test-key");
?>
Создайте файл crontab в директории /work/components/php72/cron.d или используйте встроенные задачи task. Например, для создания плана резервного копирования базы данных, сохраните файлы резервного копирования в директорию backup, которая находится на одном уровне с cron.d. В файле task есть комментарии, которые помогут вам избежать проблем. Не беспокойтесь о том, что задачи планировщика остановятся после перезапуска контейнера, если контейнер продолжает работать, задачи будут выполняться.
Если вам нужно обновить версию какого-либо компонента, убедитесь, что вы загружаете соответствующий файл конфигурации и изменяете соответствующие параметры. Например, по умолчанию в файле redis.conf указан IP-адрес 127.0.0.1, что не позволяет PHP-контейнеру подключаться к нему. Необходимо изменить IP-адрес на 0.0.0.0. Также убедитесь, что вы изменяете путь к логам.
# 1. Если вы используете Ubuntu, попробуйте выполнить следующую команду для установки, если возникнут проблемы, попробуйте второй метод
apt install docker.io # 2. Следуйте документации, предоставленной daocloud
# Обратите внимание, что если вы столкнетесь с ошибкой при выполнении команды типа install docker-ce=17.03.1*, выполните команду install docker-ce
https://download.daocloud.io/Docker_Mirror/Docker
# Обратите внимание: если вы используете пользователя, отличного от root, команда curl может выдать ошибку "нет разрешения на запись в /usr/local/bin". Вы можете сначала записать файл в текущую директорию, а затем использовать sudo mv для перемещения
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose##### 3. Запуск Docker
sudo service docker start
sudo docker info
Ускоритель от Alibaba Cloud: для каждого пользователя есть свой ускоренный адрес, доступен на https://dev.aliyun.com -> [Центр управления] -> [DockerHub] -> настройка ускорителя
Ускоритель от DaoCloud: http://guide.daocloud.io/dcs/daocloud-9153151.html
Ускоритель от Tencent Cloud: https://www.qcloud.com/document/product/457/7207
MIT
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )