###################################################
Прежде всего , создаем инструкцию для создания образа(image).
Файл будет называться Dockerfile.
Пример:
Далее собираем наш образ:
Прежде всего , создаем инструкцию для создания образа(image).
Файл будет называться Dockerfile.
Пример:
# Используем за основу контейнера Ubuntu 14.04 LTS
FROM ubuntu:14.04
# Переключаем Ubuntu в неинтерактивный режим — чтобы избежать лишних запросов
ENV DEBIAN_FRONTEND noninteractive
# Устанавливаем локаль
RUN locale-gen ru_RU.UTF-8 && dpkg-reconfigure locales
# Добавляем необходимые репозитарии и устанавливаем пакеты
RUN apt-get install -y software-properties-common
RUN add-apt-repository -y ppa:ondrej/php5-5.6
RUN add-apt-repository -y ppa:nginx/stable
RUN sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y wget curl php5-fpm php5-mysql e supervisor nginx
# Добавляем описание виртуального хоста
ADD astgo.ru /etc/nginx/sites-enabled/astgo.ru
# Отключаем режим демона для Nginx (т.к. запускать будем сами)
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
# Отключаем режим демона для php-fpm
RUN sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php5/fpm/php-fpm.conf
# Добавляем конфиг supervisor (описание процессов, которые мы хотим видеть запущенными на этом контейнере)
ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# Объявляем, какие директории мы будем подключать
VOLUME ["/var/www"]
# Объявляем, какой порт этот контейнер будет транслировать
EXPOSE 80
# Запускаем supervisor
CMD ["/usr/bin/supervisord"]
Описания синтаксиса:
-
FROM — указывает название образа (image), который будет взят за основу.
-
ENV — устанавливает переменную среды
-
RUN — запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера)
-
ADD — добавить файл в контейнер
-
VOLUME — указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры)
-
EXPOSE — указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры)
-
CMD — запустить процесс (это и будет процесс, вокруг которого построен контейнер)
Далее собираем наш образ:
docker bulid -t repo/dev
Просмотрим
наши доступные образы:
docker images
Запустим
наш образ, и сразу перейдем в контейнер:
docker
run -ti repo/dev
Выйти с
контейнера и оставить его работать в
фоне:
Cntr+P Cntr+Q
Обычный
выход с контейнера:
exit
Запуск
временного контейнера (после выхода он
удалится):
docker
run -ti -rm repo/dev
Сохраняем
свой образ в репи( предварительно нужна
регистрация на Docker
Hub )
docker commit -m "What did you do to the image" -a "Author Name" container-id repository/new_image_name
Так же
есть возможность скачать уже готовые
образы командой:
docker pull <name image>
Проверить или
запущены ваши контейнеры:
docker ps
Подключиться
к работающему контейнеру:
docker attach id-containera
Больше
команд можно найти тут --> Docker
commands
Комментариев нет:
Отправить комментарий