Контейнер Docker PHP / MySQL / Apache

#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