DockerのLAMP
2116 ワード
LAMPとはLinux(オペレーティングシステム)、ApacheHTTPサーバ、MySQL(MariaDB、データベースソフトウェアの場合もある)、PHP(PerlまたはPythonの場合もある)の組み合わせであり、Webサーバ環境の構築に一般的に適している.次に、Dockerを使用してLAMPコンポーネントを含むコンテナを構築する方法を説明します.
LAMPミラーのダウンロード
Docker Hub上に収蔵されているLAMPミラーまたは使用されているLAMPミラーを検索します.筆者はtutum/lampミラーを選択することをお勧めします.
デフォルトでLAMPコンテナを起動する
ダウンロードしたミラーを使用してコンテナを起動し、コンテナの8080ポートと3306ポートをマッピングします.
独自のPHPアプリケーションの導入
デフォルトのコンテナはhellowordアプリケーションを起動します.読者は、このミラーに基づいてDockerfileを編集して、カスタムLAMPアプリケーションミラーを作成することができます.
ホストホストに新しい作業ディレクトリlampを作成するには、次の手順に従います.
phpディレクトリの下にDockerfileファイルを作成します.内容は次のとおりです.
dockerpool/my-lamp-appという名前のミラーを作成します.
PHPプログラムでデータベースを接続するコンテナでMySQLデータベースにアクセスしてダウンロードしたtutum/lampミラーのMySQLデータベースにはデフォルトのrootユーザーがあり、ローカル接続ではパスワードを使用しないことができるため、コードでのデータベースへのアクセスは非常に簡単です:
2.コンテナ外でMySQLデータベースにアクセスする
デフォルトのMySQLデータベースではrootユーザーのリモートログインはサポートされていないため、コンテナの外でrootユーザーを介してMySQLデータベースに直接アクセスすることはできません.最初にtutum/lampミラーを使用してコンテナを起動すると、adminというMySQLユーザーが自動的に作成され、ランダムパスワードが生成され、docker logsコマンドを使用してこのパスワードを取得できます.
注意adminユーザーはrootと同じ権限を持っています.
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プログラムでデータベースを接続する
host_info;
?>
2.コンテナ外でMySQLデータベースにアクセスする
デフォルトのMySQLデータベースではrootユーザーのリモートログインはサポートされていないため、コンテナの外でrootユーザーを介してMySQLデータベースに直接アクセスすることはできません.最初にtutum/lampミラーを使用してコンテナを起動すると、adminというMySQLユーザーが自動的に作成され、ランダムパスワードが生成され、docker logsコマンドを使用してこのパスワードを取得できます.
# sudo docker logs 9cb
注意adminユーザーはrootと同じ権限を持っています.