Docker — это открытая система для создания контейнеров приложений, написанная на языке Go и распространяемая под лицензией Apache 2.0.
Docker позволяет разработчикам упаковывать их приложения и зависимости в легковесные, переносимые контейнеры, которые затем можно запустить на любом популярном Linux-сервере, обеспечивая тем самым виртуализацию.
Контейнеры полностью изолированы друг от друга, как приложения на iPhone, и имеют минимальные затраты по производительности.
a. Изображение похоже на образ виртуальной машины и представляет собой только-для-чтения-доступный шаблон для Docker-движка, содержащий файловую систему.
b. Изображение служит основой для создания Docker-контейнеров. С помощью системы версионного контроля и инкрементальной файловой системы Docker предоставляет простой способ создания и обновления существующих изображений.
a. Контейнер похож на легковесную изолированную среду, используемую Docker для запуска и изоляции приложений.
b. Контейнер — это запущенный экземпляр приложения, созданный из изображения. Его можно запускать, останавливать, перезапускать и удалять, и все эти контейнеры изолированы друг от друга.
c. Контейнер можно рассматривать как упакованный в контейнер набор простой Linux-среды и запущенных в ней приложений.d. Изображение само по себе является только-для-чтения. При запуске контейнера из изображения Docker создает на вершине изображения изменяемый слой, в то время как само изображение остается неизменным.
a. Репозиторий похож на систему управления версиями кода и представляет собой место хранения изображений Docker.
Примечание: Регистрационный сервер и Docker-репозиторий — это разные вещи. Регистрационный сервер — это место хранения репозиториев.
docker pull mysql:5.6
mysql:5.6 Число после двоеточия называется TAG и похоже на версию. Список доступных TAG можно найти здесь: https://hub.docker.com/r/library/
Нажав на определенное приложение, можно увидеть список доступных TAG.
Можно увидеть все извлеченные изображения.#### Затем запускаем и активируем контейнер
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=xy123456 --name docker_mysql mysql:5.6
-d Запускает контейнер в фоновом режиме
-p Устанавливает соотношение портов между хостом и контейнером, где число перед двоеточием — это порт хоста, а число после двоеточия — это порт контейнера
-e Устанавливает переменные окружения, здесь задается начальный пароль для пользователя root MySQL, который обязательно должен быть установлен
--name Устанавливает имя контейнера, которое должно быть уникальным
docker ps -a
docker ps -a
Можно увидеть, что состояние контейнера Up, что означает, что контейнер запущен, и отображаются сопоставления портов между хостом и контейнером.
Для просмотра только запущенных контейнеров используйте команду docker ps
.
docker exec -ti docker_mysql /bin/bash
-t создает псевдотерминал в контейнере
-i позволяет взаимодействовать с стандартным вводом (STDIN) контейнера
По умолчанию в контейнере не установлен vim, поэтому его нужно установить. Не забудьте выполнить команду apt update
перед установкой, иначе могут возникнуть проблемы.
После входа в контейнер с MySQL создайте пользователя, который сможет подключаться к базе данных из других хостов. Можно также использовать root для подключения, но это не рекомендуется.### Установка php-fpm в Docker
docker pull php:7.1-fpm
docker run -d -v /Users/xxx/Sites:/var/www/html -p Yöntem:9000:9000 --link docker_mysql:mysql --name docker_phpfpm71 php:7.1-fpm
-d запускает контейнер в фоновом режиме
-p добавляет сопоставление портов между хостом и контейнером
-v добавляет сопоставление каталогов, то есть каталог /Users/xxx/Sites хоста синхронизируется с каталогом /var/www/html контейнера
--name имя контейнера
--link устанавливает связь с другим контейнером, что позволяет использовать сервисы из этого контейнера
Если параметр --link не указан, это тоже работает, так как контейнер имеет уникальный IP-адрес, который можно использовать для подключения.
Исправления:
docker run
.docker run
переведено на русский язык.--link
переведено на русский язык.### Установка расширений PHP в Docker
Вход в контейнер и установка расширенияdocker-php-ext-install pdo_mysql
docker pull nginx:1.15.0
docker run -d -p 9091:80 -v /User/lidan/Sites:/var/www/html --link docker_phpfpm71:phpfpm --name docker_nginx nginx:1.15.0
-d запускает контейнер в фоновом режиме
-p добавляет сопоставление портов между хостом и контейнером
-v добавляет сопоставление каталогов, здесь лучше сделать корневой каталог nginx-контейнера таким же, как и у php-контейнера. Но это не обязательно, если каталоги не совпадают, то при настройке nginx это нужно учитывать
--name устанавливает имя контейнера
--link устанавливает связь с другим контейнером
```#### Войдите в контейнер nginx, чтобы изменить конфигурационный файл nginx для поддержки php
docker exec -ti docker_nginx /bin/bash
-t создает псевдотерминал в контейнере -i позволяет взаимодействовать с стандартным вводом (STDIN) контейнера
#### Найдите конфигурационный файл nginx в контейнере, по умолчанию он находится в директории /etc/nginx
location ~ .php$ { root /var/www/html; fastcgi_index index.php; fastcgi_pass docker_phpfpm71:9000; // Здесь укажите контейнер, связанный с помощью --link, или используйте IP-адрес контейнера php fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; // Если корневая директория вашего сайта отличается от корневой директории контейнера php, замените $document_root на корневую директорию php, иначе php не сможет найти файлы }
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )