DockerのLAMP

2116 ワード

LAMPとはLinux(オペレーティングシステム)、ApacheHTTPサーバ、MySQL(MariaDB、データベースソフトウェアの場合もある)、PHP(PerlまたはPythonの場合もある)の組み合わせであり、Webサーバ環境の構築に一般的に適している.次に、Dockerを使用してLAMPコンポーネントを含むコンテナを構築する方法を説明します.
LAMPミラーのダウンロード
Docker Hub上に収蔵されているLAMPミラーまたは使用されているLAMPミラーを検索します.筆者はtutum/lampミラーを選択することをお勧めします.
# sudo docker search -s 10 lamp
tutum/lamp              Out-of-the-box LAMP image (PHP+MySQL)           67 

  docker pull  ,    :
 # sudo docker pull tutum/lamp


デフォルトでLAMPコンテナを起動する
ダウンロードしたミラーを使用してコンテナを起動し、コンテナの8080ポートと3306ポートをマッピングします.
# sudo docker run -d -p 8080:80 -p 3306:3306 tutum/lamp
# docker ps
  curl    ,              :
# curl http://127.0.0.1:8080

独自のPHPアプリケーションの導入
デフォルトのコンテナはhellowordアプリケーションを起動します.読者は、このミラーに基づいてDockerfileを編集して、カスタムLAMPアプリケーションミラーを作成することができます.
ホストホストに新しい作業ディレクトリlampを作成するには、次の手順に従います.
# mkdir lamp
# cd lamp
# touch Dockerfile

phpディレクトリの下にDockerfileファイルを作成します.内容は次のとおりです.
FROM tutum/lamp:latest
RUN rm -fr /app &&git clone https://github.com/username/customapp.git /app
#   https://github.com/username/customapp.git              
EXPOSE 80 3306
CMD ["/run.sh"]

dockerpool/my-lamp-appという名前のミラーを作成します.
# docker build -t dockerpool/my-lamp-app .
           ,        -d  ,       :
# docker run -d -p 8080:80 -p 3306:3306 dockerpool/my-lamp-app
        curl                   :
# curl http://127.0.0.1:8080/


PHPプログラムでデータベースを接続する
  • コンテナでMySQLデータベースにアクセスしてダウンロードしたtutum/lampミラーのMySQLデータベースにはデフォルトのrootユーザーがあり、ローカル接続ではパスワードを使用しないことができるため、コードでのデータベースへのアクセスは非常に簡単です:
  • host_info;
    ?>
    

    2.コンテナ外でMySQLデータベースにアクセスする
    デフォルトのMySQLデータベースではrootユーザーのリモートログインはサポートされていないため、コンテナの外でrootユーザーを介してMySQLデータベースに直接アクセスすることはできません.最初にtutum/lampミラーを使用してコンテナを起動すると、adminというMySQLユーザーが自動的に作成され、ランダムパスワードが生成され、docker logsコマンドを使用してこのパスワードを取得できます.
    # sudo docker logs 9cb
    

    注意adminユーザーはrootと同じ権限を持っています.