#php #mysql #docker
#php #mysql #docker
Вопрос:
Работа с файлом Docker, который включает PHP, Apache и MySQL. Мне удалось открыть страницу в localhost. Однако я не могу запустить MySQL.
# Use an official PHP Apache runtime as a parent image
FROM php:7.0-apache
# Set the working directory to /var/www/html/
WORKDIR /var/www/html/
# Install mysqli extensions
RUN docker-php-ext-install mysqli amp;amp;
apt-get update amp;amp;
apt-get install -y zlib1g-dev amp;amp;
apt-get install -y libxml2-dev amp;amp;
docker-php-ext-install zip amp;amp;
docker-php-ext-install xml
# Make port 80 available to the world outside this container
EXPOSE 80
Исходя из вышесказанного, когда я пытаюсь запустить следующую команду:
docker run --name some-mysql -e MYSQL_abcd_123456=my-secret-pw -d mysql:tag
Я получаю следующую ошибку в терминале:
Unable to find image 'mysql:tag' locally
docker: Error response from daemon: manifest for mysql:tag not found.
Чего мне не хватает?
Комментарии:
1. Это ваша точная команда? Используйте реальный тег вместо «tag». Проверьте документацию по изображению на DockerHub.
2. Ну, я изменил часть пароля. Но кроме этого, да. Это команда.
Ответ №1:
для команды docker run требуется параметр image name с необязательной версией изображения (рекомендуется).
Использовать:
docker run --name some-mysql -e MYSQL_abcd_123456=my-secret-pw -d mysql:latest
чтобы извлечь последний образ mysql или выбрать точную версию, указанную в поддерживаемых тегах
например:
5.7.25
или
8.0.15
В большинстве случаев вам не следует использовать тег с версией latest
(или пропускать версию), потому что это неоднозначно и может дать вам разные версии изображения на двух разных машинах, даже если они использовали для сборки один и тот же оператор Dockerfile FROM или вы использовали одну и ту же docker run
( docker pull
) команду. Подробнее
Я бы рекомендовал всегда придерживаться явного номера версии, если это возможно, например:
docker run --name some-mysql -e MYSQL_abcd_123456=my-secret-pw -d mysql:8.0.15