環境準備: 複数のコンテナに基づいてホストに lnmp をデプロイします。 コンテナの IP アドレスが固定される問題を解決します。 注: コンテナが停止または削除され、同じコンテナが再度実行されると、その IP アドレスは元のアドレスではなくなるため、コンテナの IP アドレスを指定するにはネットワーク セグメントをカスタマイズする必要があります。 プロジェクト運営: (1)まずネットワークをカスタマイズします。 [root@sqm-docker01 ~]# docker network create -d bridge --subnet 172.16.10.0/24 --gateway 172.16.10.1 mynet1 (2)nginx、php:fpm、mysql-5.7イメージをダウンロードします。 [root@sqm-docker01 ~]# docker pull nginx [root@sqm-docker01 ~]# docker pull php:7.2-fpm <!--php:7.2-fpmのイメージを使用--> [root@sqm-docker01 ~]# docker pull mysql:5.7 <!--mysql:5.7のイメージを使用--> (3)####nginxイメージに基づいてコンテナを実行する##### #まず nginx サービスを実行して nginx 設定ファイルをコピーします。 パラメータの説明:
ファイルをマウントするホスト上にディレクトリを作成します。 ウェブサイトのメインディレクトリ: /wwwroot; nginx 設定ファイル: /docker; [root@sqm-docker01 ~]# mkdir /wwwroot [root@sqm-docker01 ~]# mkdir /docker ##docker cp コマンドを使用して、nginx 構成ファイルが保存されているディレクトリをローカル マシンにコピーします。 注: docker cp コマンドは、ホストからコンテナにファイルをコピーしたり、コンテナ内のファイルまたはディレクトリをローカル マシンにコピーしたりできます。 [root@sqm-docker01 ~]# docker cp test1:/etc/nginx /docker/ #docker cp を使用して、nginx 構成ファイルが保存されているディレクトリをホストにコピーします。 [root@sqm-docker01 ~]# ls /docker/nginx/conf.d/ デフォルト.conf nginx Web ディレクトリをコピーします。 [root@sqm-docker01 ~]# docker cp test1:/usr/share/nginx/html /wwwroot/ [root@sqm-docker01 ~]# ls /wwwroot/html/ 50x.html インデックス.html nginx のデフォルトのテスト Web ページを変更します。 [root@sqm-docker01 html]# echo "<h1>hello welcome to nginx web</h1>" > index.html (4)nginxコンテナを実行します。 コンテナ内のディレクトリをローカルディレクトリにマウントし、IPアドレスを指定します。 [root@sqm-docker01 ~]# docker run -itd --name nginx --network my_net1 --ip 172.16.10.10 -p 80:80 -v /docker/nginx:/etc/nginx -v /wwwroot/html:/usr/share/nginx/html nginx:latest パラメータの説明:
(5)mysqlコンテナを実行します。 [root@sqm-docker01 ~]# docker run --name mysql -e MYSQL_ROOT_PASSWORD=123.com -d -p 3306:3306 --network my_net1 --ip 172.16.10.20 mysql:5.7 -eはコンテナ内の環境変数を設定するためのものです。コンテナに渡されてmysqlパスワードを設定するmysqlパスワード環境変数を設定します。 このマシンで root ユーザーが mysql にログインできるかどうかをテストします。 まず、mysql クライアントをダウンロードする必要があります。 [root@sqm-docker01 ~]# yum -y mysqlをインストールします (6)PHPコンテナを実行します。 [root@sqm-docker01 ~]# docker run -itd -p 9000:9000 --name phpfpm -v /wwwroot/html:/usr/share/nginx/html --network my_net1 --ip 172.16.10.30 php:7.2-fpm 知らせ: (7)nginxとphp-fpmを設定します。 nginx を解析するには PHP を設定する必要があります。 簡単なテスト Web ページを作成します。 次に、nginx 構成ファイルを変更する必要があります。 [root@sqm-docker01 html]# vim /docker/nginx/conf.d/default.conf (8)mysqlを設定する: phpMyadmin の設定: phpMyAdmin は、Web サイト ホスト上の PHP ベース、Web ベースの MySQL データベース管理ツールであり、管理者は Web インターフェイスを使用して MySQL データベースを管理できます。この Web インターフェイスは、特に大量のデータをインポートおよびエクスポートする場合に、複雑な SQL 構文を簡単に入力するためのより優れた方法です。最大の利点の 1 つは、phpMyAdmin が他の PHP プログラムと同様に Web サーバー上で実行されるため、これらのプログラムによって生成された HTML ページをどこからでも使用できることです。つまり、MySQL データベースをリモートで管理し、データベースとテーブルを簡単に作成、変更、削除できます。 [root@sqm-docker01 html]# pwd /wwwroot/html 現在のディレクトリに解凍します: [root@sqm-docker01 html]# phpMyAdmin-4.9.1-all-languages.zip を解凍します 名前を変更: [root@sqm-docker01 html]# mv phpMyAdmin-4.9.1-すべての言語phpmyadmin nginx 設定ファイルを変更します - phpMyAdmin との接続を設定します。 [root@sqm-docker01 html]# vim /docker/nginx/conf.d/default.conf 元の場所構成項目をコピーし、次の 2 つの場所構成セクションを追加します。 nginx 設定ファイルを変更したら、nginx を再起動します。 テスト Web ページにアクセスしてください: コンテナ内のポートはホストにマッピングされているので、ホストアドレス172.16.1.30に直接アクセスします。 PHP にアクセスして nginx Web ページを解析します。 次に、phpMyAdmin へのログインをテストします。 URLにアクセス: http://172.16.1.30/phpmyadmin/index.php mysqli モジュールが欠落しているためアクセスできません。そのため、mysql 構成モジュールをサポートするために php を追加する必要があります。 コンテナに拡張モジュールを追加する方法については、dockerhub にログインして関連ドキュメントを照会できます。 リンクパス: https://hub.docker.com/ 上記の Dockerfile スクリプトをコピーしてローカルにインストールします。 いくつかの追加コンテンツを追加する必要があることに注意してください。 [root@sqm-docker01 ~]# vim Dockerfile php:7.2-fpm より apt-get update && apt-get install -y \ を実行します。 libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-install -j$(nproc) iconv \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-install mysqli pdo pdo_mysql Dockerfile をビルドします。 [root@sqm-docker01 ~]# docker build -t phpfpm-mysqli . パラメータの説明:
ビルドが完了したら、元の PHP イメージを削除し、正常にビルドされて mysqli モジュールをサポートするイメージを実行します。 [root@sqm-docker01 ~]# docker stop phpfpm phpfpm [root@sqm-docker01 ~]# docker rm phpfpm phpfpm [root@sqm-docker01 ~]# docker run --name phpfpm -d -p 9000:9000 -v /wwwroot/html:/usr/share/nginx/html --network my_net1 --ip 172.16.10.30 phpfpm-mysqli:latest #Mirror は、ビルドしたばかりの Dockerfile によって生成されたイメージ名を指定します。 phpMyAdmin のデフォルトのサンプル (サンプル ファイル) を変更します。 設定ファイルで使用する場合は、名前を変更してサンプルを削除する必要があります。 [root@sqm-docker01 phpmyadmin]# パスワード /wwwroot/html/phpmyadmin [root@sqm-docker01 phpmyadmin]# cp config.sample.inc.php config.inc.php 設定ファイルを変更します。 [root@sqm-docker01 phpmyadmin]# vim config.inc.php 設定ファイルを変更したら、PHP を再起動します。 [root@sqm-docker01 phpmyadmin]# dockerを再起動しますphpfpm phpfpm phpMyAdmin Web ページにアクセスします。 URLを入力してください: http://172.16.1.30/phpmyadmin/index.php
mysql データベースに正常にアクセスしました。 。 。 。 。 。 この時点で、docker 内の複数のコンテナ間での lnmp の展開は完了です。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Win10 での MySQL 8.0.15 のインストールと設定のグラフィック チュートリアル
>>: Web Storage APIの使用に関する簡単な説明
最新バージョンの WIN10 では、Microsoft は仮想化コンテナに基づくセキュリティ メカニ...
サンプルコード: java.util.Random をインポートします。 java.util.UUI...
Docker イメージの最初の行は FROM alpine などのイメージで始まりますが、最初のベー...
序文MySQL 8.0 の最新バージョンは 8.0.4 rc であり、正式版は近日中にリリースされる...
目次1. RegExpオブジェクト2. 文法2.1 定義2.2 修飾子2.3 角括弧2.4 メタ文字...
債券とは何かNIC ボンドは、実稼働シナリオでよく使用されるテクノロジーです。複数の NIC を 1...
JSXとは何かJSX は Javascript の構文拡張であり、JSX = Javascript ...
目次序文1. 公式サイトからMySQLをダウンロードする2. 解凍ファイルを設定する3. 初期化4....
目次1: 単一マシンのパスワードフリーログイン構成1. 仮想マシンのホスト名を設定する2. 仮想マシ...
META タグは、一般的に タグと呼ばれ、HTML Web ページのソース コード内の重要な HTM...
1. サーバー ホストをクリックし、右側の操作リストで [仮想スイッチ管理] をクリックして、仮想...
目次新しい HTML ファイルを作成します。初期テンプレートを作成するHTML の追加CSS パディ...
1. --cpu=<値> 1) コンテナが使用できるCPUリソースの量を指定しますが、コ...
この記事では、テーブル構造操作やフィールド操作など、MySQL データ テーブルの基本的な操作につい...
目次序文vue.config.js 構成オプションパッケージサイズを縮小するためのパッケージの最適化...