Docker では、LAMP は Linux (オペレーティング システム)、Apache HTTP サーバー、MySQL (MariaDB などのデータベース ソフトウェア)、および PHP (Perl または Python) の組み合わせを指し、一般に Web サーバーを確立するために使用されます。環境。
このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
LAMP は、Linux (オペレーティング システム)、Apache HTTP サーバー、MySQL (MariaDB、データベース ソフトウェアを指すこともあります)、および PHP (Perl または Python を指すこともあります) の組み合わせを指し、一般に非常に適しています。 Webサーバー環境の構築に。
以下では、Docker を使用して LAMP コンポーネントを含むコンテナーを構築する方法を説明します。
LAMP イメージのダウンロード
Docker Hub で収集または頻繁に使用される 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 アプリケーション イメージを作成できます。
ホスト上に新しい作業ディレクトリ ランプを作成します:
# mkdir lamp # cd lamp # touch Dockerfile
次の内容を含む Dockerfile ファイルを php ディレクトリに作成します:
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 3306CMD ["/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 プログラムでデータベースに接続します
1. コンテナ内の MySQL データベースにアクセスします
ダウンロード済みtutum/lamp イメージ内の MySQL データベースにはすでにデフォルトの root ユーザーがあり、ローカル接続にはパスワードが必要ないため、コードでのデータベースへのアクセスは非常に簡単です:
<?php $mysql = new mysqli("localhost", "root"); echo "MySQL Server info: ".$mysql->host_info; ?>
2. 外部の MySQL データベースにアクセスします。コンテナ
#デフォルトの MySQL データベースは root ユーザーのリモート ログインをサポートしていないため、root ユーザーがコンテナ外の MySQL データベースに直接アクセスすることはできません。tutum/lamp イメージを初めて使用してコンテナを起動すると、admin という名前の MySQL ユーザーが自動的に作成され、ランダムなパスワードが生成されます。このパスワードは docker logs コマンドを使用して取得できます:
# sudo docker logs 9cb管理ユーザーは root と同じ権限を持っていることに注意してください。 推奨される学習: 「
docker ビデオ チュートリアル 」
以上がDocker のランプとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。