Здесь показаны различия между двумя версиями данной страницы.
— |
howto:docker:example [2019/01/21 11:17] (текущий) Алексей Кожевников создано |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Примеры ====== | ||
+ | ===== Пример php приложения ===== | ||
+ | |||
+ | == Dockerfile == | ||
+ | |||
+ | <code> | ||
+ | FROM centos:7 | ||
+ | |||
+ | ENV ORACLE_HOME=/usr/lib/oracle/12.1/client64 | ||
+ | ENV LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib | ||
+ | ENV LD_LIBRARY_PATH64=/usr/lib/oracle/12.1/client64/lib | ||
+ | ENV NSS_SDB_USE_CACHE=yes | ||
+ | |||
+ | COPY oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm /tmp/ | ||
+ | RUN yum install -y /tmp/oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm \ | ||
+ | && rm -f /tmp/*.rpm | ||
+ | |||
+ | RUN yum clean all \ | ||
+ | && yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \ | ||
+ | && yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm \ | ||
+ | && yum-config-manager --enable remi-php56 \ | ||
+ | && yum install -y php-cli php-fpm php-gd php-mbstring php-mysqlnd php-oci8 php-pecl-memcache php-soap \ | ||
+ | && yum install -y curl net-tools tcpdump telnet \ | ||
+ | && yum clean all | ||
+ | |||
+ | COPY etc/php.ini etc/php-fpm.conf /etc/ | ||
+ | COPY etc/php-fpm.d/www.conf /etc/php-fpm.d/ | ||
+ | |||
+ | CMD ["/usr/sbin/php-fpm", "--nodaemonize"] | ||
+ | </code> | ||
+ | |||
+ | == Создание образа == | ||
+ | <code> | ||
+ | docker build --no-cache -t php56 . | ||
+ | </code> | ||
+ | |||
+ | == Добавление образа в репозиторий == | ||
+ | <code> | ||
+ | docker tag php56 ak831/php56 | ||
+ | docker push ak831/php56 | ||
+ | </code> | ||
+ | |||
+ | == Загрузка образа == | ||
+ | <code> | ||
+ | docker pull ak831/php56:latest | ||
+ | </code> | ||
+ | |||
+ | == Запуск контейнера == | ||
+ | <code> | ||
+ | docker run --name pe -d \ | ||
+ | --network="host" \ | ||
+ | --mount type=bind,source=/usr/local/pe,target=/usr/local/pe \ | ||
+ | --mount type=bind,source=/usr/local/pe/log,target=/var/log/php-fpm \ | ||
+ | --restart unless-stopped \ | ||
+ | ak831/php56:latest | ||
+ | </code> | ||
+ | |||
+ | == Подключение к контейнеру == | ||
+ | <code> | ||
+ | docker exec -i -t pe2 bash | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | docker exec -ti --user postgres a2db_postgres_1 psql | ||
+ | </code> | ||
+ | |||
+ | === C отдельными томами и сетевым мостом === | ||
+ | |||
+ | == Создание томов == | ||
+ | <code> | ||
+ | docker volume create pe-data | ||
+ | docker volume create pe-logs | ||
+ | </code> | ||
+ | |||
+ | == Запуск контейнера == | ||
+ | <code> | ||
+ | docker run --name pe -d \ | ||
+ | -p 127.0.0.1:9009:9009 \ | ||
+ | --mount source=pe-data,target=/usr/local/pe \ | ||
+ | --mount source=pe-logs,target=/var/log/php-fpm \ | ||
+ | --restart unless-stopped \ | ||
+ | ak831/php56:latest | ||
+ | </code> | ||
+ | |||
+ | {{tag> docker php }} |