使用docker启动Web服务器环境

时间:2018-06-15 11:14:43

标签: php amazon-web-services docker nginx apache2

我是docker的新手,我想知道如何使用docker建立Web服务器环境。

我需要什么:

PHP HTTPD,NGINX

我在Debian 9.4上安装了docker,我现在能够运行docker命令。

我已发布docker pull phpdocker pull nginx

我实际上在灯服务器(Debian 7)上运行了一个应用程序 我的所有申请都在/var/www/application

如何为我的项目创建docker容器? (NGINX,PHP)

我需要dockercompose文件吗?如何根据我的需要编写它? 我需要一个dockerfile吗?如何根据我的需要编写它?

请你指点一下;)

先感谢社区。

将来我想在AWS Elasticbeanstalk上导出我的应用程序。 我将使用的数据库存储在AWS云(Amazon RDS)上,因此我不需要数据库容器。

1 个答案:

答案 0 :(得分:1)

我的建议是使用docker-compose。这是一个样本LEMP:

<强>搬运工-compose.yml

web:
  image: nginx:latest
  ports:
    - "8080:80"
  volumes:
    - ./your_project:/your_project
    - ./nginx.conf:/etc/nginx/conf.d/default.conf
  links:
    - php

php:
  build: .
  volumes: 
    - ./your_project:/your_project
  links:
    - mysql

mysql:
  image: mysql:latest
  ports:
    - "3306:3306"
  environment: 
    - MYSQL_ROOT_PASSWORD=password

<强> Dockerfile

FROM php:fpm

RUN apt-get update

RUN docker-php-ext-install mysql mysqli

RUN echo "localhost localhost.localdomain" >> /etc/hosts

<强> nginx.conf

server {
    index index.php index.html;
    server_name your.domain;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /your_project;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}