sql >> データベース >  >> RDS >> Mysql

Docker-さまざまなWebサイトのホストとコンテナーでApacheを実行します

    VonCの回答 に感​​謝します なんとか機能させることができましたが、アーキテクチャを少し変更した結果、コンテナが1つではなく3つになりました。

    Apache / PHPのバージョンごとに1つのコンテナーがあり、リバースプロキシとしてNginxを使用するコンテナーが1つあります。これを簡単に適応させて、ホストにNginxをインストールし、質問で説明したアーキテクチャに一致するように構成を変更できると思います。

    私はDockerを初めて使用し、Linuxシステム管理については初心者なので、次のスクリプトではおそらくいくつかの間違いや意味をなさないことがありますが、それは私にとってはうまくいきます。自由に改善してください:)

    Nginxリバースプロキシイメージ

    Dockerfile:

    FROM debian:jessie
    
    MAINTAINER AntoineB version: 0.1
    
    RUN apt-get update && \
        apt-get install -y --force-yes \
                nginx \
            nano
    
    EXPOSE 80
    EXPOSE 443
    
    ADD ./proxy.conf /etc/nginx/conf.d/proxy.conf
    
    CMD ["nginx"]
    

    参照されているproxy.confは次のとおりです ファイル:

    proxy_redirect          off;
    proxy_set_header        Host            $host;
    proxy_set_header        X-Real-IP       $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size    10m;
    client_body_buffer_size 128k;
    client_header_buffer_size 64k;
    proxy_connect_timeout   90;
    proxy_send_timeout      90;
    proxy_read_timeout      90;
    proxy_buffer_size   16k;
    proxy_buffers       32   16k;
    proxy_busy_buffers_size 64k;
    

    そして、次のbashスクリプトを使用して実行します:

    docker run -ti -d -p 80:80 -v /home/antoineb/Docker/images/nginxproxy/virtualhosts:/etc/nginx/sites-enabled --name nginxproxy nginxproxy /bin/bash
    

    /home/antoineb/Docker/images/nginxproxy/virtualhostsがあります 次のdefaultを含むホスト上のフォルダー ファイル:

    server {
           listen 80;
    
           server_name  siteZ.com;
           location / {
                proxy_pass http://apache22php53:80;
           }
    }
    
    server {
           listen 80;
    
           server_name  siteA.com;
           location / {
                proxy_pass http://apache24php56:80;
           }
    }
    server {
           listen 80;
    
           server_name  siteB.com;
           location / {
                proxy_pass http://apache24php56:80;
           }
    }
    

    Apache 2.2 +PHP5.3イメージ

    Dockerfile:

    FROM debian:wheezy
    
    MAINTAINER AntoineB version: 0.1
    
    RUN apt-get update
    
    RUN echo "deb http://packages.dotdeb.org squeeze all" > /etc/apt/sources.list.d/dotdeb_squeeze.list
    RUN echo "deb-src http://packages.dotdeb.org squeeze all" >> /etc/apt/sources.list.d/dotdeb_squeeze.list
    RUN echo "deb http://ftp.debian.org/debian/ squeeze main contrib non-free" >> /etc/apt/sources.list.d/dotdeb_squeeze.list
    
    RUN echo "Package: *php*" > /etc/apt/preferences.d/php53.pref
    RUN echo "Pin: release o=packages.dotdeb.org,n=squeeze" >> /etc/apt/preferences.d/php53.pref
    RUN echo "Pin-Priority: 989" >> /etc/apt/preferences.d/php53.pref
    
    RUN apt-get update && \
        apt-get install -y --force-yes \
                apache2 \
            php5 \
            php5-curl \
            php5-gd \
            php5-mysql \
            nano
    
    RUN a2enmod \
                php5 \
            rewrite
    
    ENV APACHE_RUN_USER www-data
    ENV APACHE_RUN_GROUP    www-data
    ENV APACHE_LOG_DIR  /var/log/apache2
    ENV APACHE_LOCK_DIR /var/lock/apache2
    ENV APACHE_PID_FILE /var/run/apache2.pid
    
    EXPOSE 80
    EXPOSE 443
    
    CMD /usr/sbin/apache2ctl -D FOREGROUND
    

    次のスクリプトを使用して起動しています:

    docker run -ti -d -p 2253:80 -v /home:/home -v /home/antoineb/Docker/images/apache22php53/virtualhosts:/etc/apache2/sites-enabled --name apache22php53 apache22php53 /bin/bash
    

    私のWebサイトは/home/website.com/wwwに保存され、Apache仮想ホストはホストの/home/antoineb/Docker/images/apache22php53/virtualhostsに保存されます。 。

    Apache 2.4 +PHP5.6.9イメージ

    Dockerfile:

    FROM debian:jessie
    
    MAINTAINER AntoineB version: 0.1
    
    RUN apt-get update && \
        apt-get install -y --force-yes \
                apache2 \
            php5 \
            php5-curl \
            php5-gd \
            php5-mysql \
            nano
    
    RUN a2enmod \
                php5 \
            rewrite
    
    ENV APACHE_RUN_USER www-data
    ENV APACHE_RUN_GROUP    www-data
    ENV APACHE_LOG_DIR  /var/log/apache2
    ENV APACHE_LOCK_DIR /var/lock/apache2
    ENV APACHE_PID_FILE /var/run/apache2.pid
    
    EXPOSE 80
    EXPOSE 443
    
    CMD /usr/sbin/apache2ctl -D FOREGROUND
    

    実行中のスクリプト:

    docker run -ti -d -p 2456:80 -v /home:/home -v /home/antoineb/Docker/images/apache24php56/virtualhosts:/etc/apache2/sites-enabled --name apache24php56 apache24php56 /bin/bash
    

    繰り返しになりますが、私のWebサイトは/home/website.com/wwwに保存され、Apache仮想ホストはホストの/home/antoineb/Docker/images/apache24php56/virtualhostsに保存されます。 。



    1. java.sql.SQLException:結果セットの開始前

    2. SQLServerデータベースのCPU使用統計

    3. OracleDBからMariaDBに移行する方法

    4. MySQLエラー-#1062-キー2の重複エントリ''