5分間で国内Docker LNMP容器クラスターを構築

9068 ワード

LNMP Docker
テキストリンク:https://github.com/bravist/lnmp-docker
L(Alpine Linux)+N(Nginx)+M(MariaDB)+P(PHP)Dockerコンテナの開発、テスト、生産環境の迅速な構築.
しゅとくせい
  • Alpine LinuxとDebianに基づいて異なるベースミラーを構築します.masterブランチはAli-OSM加速に基づいて、国内環境で、5分間で容器クラスタの構築を迅速に完了し、alpineブランチはAlpine Linux公式ミラーに基づいて、非国内環境に適応する.debianブランチはDocker公式debianベースミラーに基づいており,全体的なミラーサイズは相対的に大きい.
  • 清潔で軽量レベルのPHP依存環境を構築し、常用PHP拡張をインストールし、PHP CLIとPHP FPMモードをサポートする.PHP CLIはコマンドラインインタラクションのプロジェクトに適用され、PHP FPMはNginxと組み合わせて、PHP Webアプリケーション環境を構築する.また、PHP FPMミラーリングはPHP CLIベースミラーリングに基づき、PHPコンテナミラーリングを最小化し、資源を効率的に利用する.
  • Docker Hub公式サイトは、異なるLinuxバージョン、異なる地域環境のPHPベースミラーを保持します.国内でのDockerイメージの構築速度を向上させるため、PHPコンテナはアリババのオープンソースミラーサービス-ALO-SM Alpineに基づいてコンテナ構築を迅速に完了した.非国内環境では、クローンプロジェクトalpineブランチの迅速な構築を提案し、debainブランチも試みることができる.
  • は、PHP CLIモード独立運転容器:call-websocktおよびphp-superviosrを提供する.call-websockt workmanベースのPHP Socketサービスを実行します.php-superviorは、Supervisorベースのキューサービスを実現する.
  • 独立にコンテナランタイムファイル、コンテナランタイムログとデータをホストから分離し、コンテナのデバッグと再構築を容易にする.
  • は、Nginx仮想サイト、SSL証明書サービスをサポートします.構成リファレンスNginxのcertconf.dディレクトリファイル.
  • は、複数の仮想サイト間のプログラム相互接続をサポートします.ここを参照して、複数のプロジェクト間の通信の問題について説明します.
  • Docker Componentを使用してコンテナを編成し、開発、テスト、生産環境でサーバ構築タスクを迅速に完了することをサポートします.

  • LNMP Dockerのインストール
    プロジェクト依存
  • CentOS 7
  • Git
  • Docker 1.12(Dockerは64ビットのシステムを必要とし、カーネルバージョンは少なくとも3.10)
  • Docker Compose

  • Dockerのインストール
    Dockerをインストールする方法はプラットフォーム、地域環境、オペレーティングシステムによって異なります.ここでは公式CentOSのインストール方法をお勧めします.他の方法は自分で検索してください.また、アリクラウドが提供するDocker Hubミラーサイトをお勧めします.専用Docker加速サービスを提供します.
    $ sudo yum install -y yum-utils
    
    $ sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
    $ sudo yum makecache fast
    
    $ sudo yum -y install docker-ce
    
    ## start up docker
    $ sudo systemctl enable docker
    
    $ sudo systemctl start docker
    
    # Add user to docker group
    $ sudo usermod -aG docker $USER
    

    Docker Componentのインストール
    Docker Compose公式Gtihub倉庫のインストール方法をお勧めします.まずバージョンを選択してください.
    $ curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    
    $ chmod +x /usr/local/bin/docker-compose
    

    LNMP Dockerのインストール
  • クローンプロジェクトGit倉庫、非国内ユーザーはクローン後、ローカルalpineブランチに切り替えてください.
    $ git clone https://github.com/bravist/lnmp-docker
    
  • .env.exampleファイルをコピーし、プロジェクト環境変数を構成します.コンテナの実行に成功した後、.envファイルを再修正し、複数のプロジェクト間のプログラムの相互接続を保証する必要があります.
    $ cd lnmp-docker 
    $ cp .env.example .env
    
  • コンテナクラスタを構築します.
    $ docker-compose build && docker-compose up -d
    
  • は5分ほど待って、容器が完成したかどうかを確認します.もし問題があったら、遠慮せずにissueを発表してください.
    ➜  ~ docker ps
    CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS                                                               NAMES
    f4452c868dcc        lnmpdocker_nginx                        "nginx -g 'daemon off"   2 hours ago         Up 2 hours          0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp                            lnmp-nginx
    15182399966b        lnmpdocker_php-supervisor               "supervisord --nodaem"   2 hours ago         Up 2 hours                                                                              lnmp-php-supervisor
    a68c55c28995        bravist/php-fpm-alpine-aliyun-app:1.2   "/usr/sbin/php-fpm7 -"   2 hours ago         Up 2 hours          0.0.0.0:9000->9000/tcp                                              lnmp-php-fpm
    eff86b31f2ba        lnmpdocker_call-websocket               "/usr/bin/php /usr/sh"   2 hours ago         Up 2 hours          0.0.0.0:8190-8191->8190-8191/tcp                                    lnmp-call-websocket
    bd3cecff945e        mariadb                                 "docker-entrypoint.sh"   2 hours ago         Up 2 hours          0.0.0.0:3306->3306/tcp                                              lnmp-mariadb
    279b2f995b2a        lnmpdocker_redis                        "docker-entrypoint.sh"   2 hours ago         Up 2 hours          0.0.0.0:6379->6379/tcp                                              lnmp-redis
    
  • プロファイルのDOCKER_HOST_IP構成パラメータを変更します.ここでは、docker inspectクエリーnginxコンテナで取得します.
    $ docker inspect lnmp-nginx | grep IPAddress
                "SecondaryIPAddresses": null,
                "IPAddress": "",
                        "IPAddress": "192.168.32.7",
    $ vi .env
    ...
    DOCKER_HOST_IP = 192.168.32.7
    ...
    :wq
    
    $ docker-compose build && docker-compose up -d
    

  • メンテナンス
    構築中に問題が発生した場合は、issueを最初にパブリッシュしてください.ここで特にヒントを与えます.
  • の構築中には、アリクラウドが提供する専属ミラーリング加速を使用するのはDocker Hub倉庫のリモートミラーリングを迅速に引き出すためであり、Ali-OSMはコンテナミラーリング構築パッケージの構築中に迅速にダウンロードするためである.
  • 新しいインストールとデバッグの場合は、ローカルDockerの既存のコンテナとミラーをできるだけきれいにしてから試してください.
    #              
    $ docker ps -a
    
    #        
    $ docker rm -f contianer_name ...
    
    #            
    $ docker-compose down 
    
    #     docker   
    $ docker rmi -f image_name ....
    
  • コンテナに入るにはsh shellを使用してログインする必要があります.すべてのコンテナはAlpine Linuxに基づいているため、デフォルトではsh shellが使用されます.
    $ docker exec -it lnmp-nginx sh
    

  • ctopクエリーコンテナを使用してリソースを占有する
    ctopは、コンテナリソースの使用状況を問い合わせるために使用できます.たとえば、GitlabとLNMP dockerをサーバにインストールした後の使用状況など、インストールを推奨します.
     $ ctop
     ctop - 15:36:35 CST      10 containers
    
       NAME                        CID                         CPU                         MEM                         NET RX/TX                   IO R/W                      PIDS
    
     ◉  gitlabdocker_gitlab_1       97d5ba4b4918                             5%                     1.99G / 7.64G       948M / 1.6G                 120M / 776K                 0
     ◉  gitlabdocker_postgresql_1   146b662e4d62                             0%                      75M / 7.64G        897K / 8M                   24M / 0B                    0
     ◉  gitlabdocker_redis_1        3bcf1582f892                             2%                      14M / 7.64G        1.6G / 940M                 5M / 0B                     0
     ◉  lnmp-call-websocket         eff86b31f2ba                             0%                      66M / 7.64G        3K / 648B                   20M / 0B                    0
     ◉  lnmp-mariadb                bd3cecff945e                             0%                     179M / 7.64G        90K / 276K                  27M / 0B                    0
     ◉  lnmp-nginx                  f4452c868dcc                             0%                      8M / 7.64G         14M / 5M                    5M / 0B                     0
     ◉  lnmp-php-fpm                a68c55c28995                             0%                      72M / 7.64G        1M / 13M                    20M / 0B                    0
     ◉  lnmp-php-supervisor         15182399966b                             1%                     1.8G / 7.64G        92M / 145M                  26M / 0B                    0
     ◉  lnmp-redis                  279b2f995b2a                             0%                      8M / 7.64G         62M / 16M                   2M / 0B                     0
     ◉  lnmp-www                    09c684094c18                              -                           -             -                           -                           -
    

    コンテナミラーサイズの表示
    $ docker images
    REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
    lnmpdocker_nginx                              latest              8ed67b3d522c        2 hours ago         15.5 MB
    lnmpdocker_php-supervisor                     latest              28d1689ec35b        2 hours ago         160.4 MB
    lnmpdocker_redis                              latest              61cedd081dd7        2 hours ago         12.63 MB
    lnmpdocker_call-websocket                     latest              47883e0cc4cd        2 hours ago         117.9 MB
    docker.io/bravist/php-fpm-alpine-aliyun-app   1.2                 1c98507f2de3        2 hours ago         124 MB
    docker.io/bravist/php-cli-alpine-aliyun-app   1.0                 505a11124094        24 hours ago        117.9 MB
    docker.io/redis                               3.0-alpine          1fbae20f0017        24 hours ago        12.63 MB
    docker.io/mariadb                             latest              ea0322bb4096        9 days ago          395.1 MB
    docker.io/nginx                               1.13.1-alpine       7ebd6770d0d6        10 days ago         15.49 MB
    

    特別参照
  • https://yeasy.gitbooks.io/docker_practice/content/install/centos.html
  • https://cr.console.aliyun.com/?spm=5176.2020520152.210.d103.H4Rlih#/accelerator ​