1. プロジェクトの説明Dockerコンテナを使用して、centosイメージ、mysqlイメージ、phpイメージに基づいてnginxイメージをコンパイルしてインストールし、最後にコンテナモードのネットワークモードを使用して、イメージを介してコンテナを起動するときにphpテストページにアクセスします。 2. Nginxイメージの作成// Centos イメージをプルする [root@Docker ~]# docker pull centos デフォルトタグの使用: 最新 最新: library/centos から取得 a1d0c7532777: プル完了 ダイジェスト: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 ステータス: centos:latest の新しいイメージをダウンロードしました docker.io/ライブラリ/centos:最新 [root@localhost ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ centos 最新 5d0da3dc9764 2か月前 231MB // Centos イメージを実行 [root@localhost ~]# docker run -it --name nginx 5d0da3dc9764 /bin/bash [ルート@03ca6bdc0374 /]# // nginx インストール パッケージをコンテナーに転送します [root@localhost ~]# docker cp /usr/src/nginx-1.20.1.tar.gz 03ca6bdc0374:/usr/src/ // nginx アカウントを作成 [root@03ca6bdc0374 /]# useradd -r -M -s /sbin/nologin nginx //依存パッケージをインストールします [root@03ca6bdc0374 /]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make // nginx ログを保存するためのディレクトリを作成します [root@03ca6bdc0374 /]# mkdir -p /var/log/nginx [root@03ca6bdc0374 /]# chown -R nginx.nginx /var/log/nginx/ // コンパイルとインストールのために nginx パッケージを解凍します [root@03ca6bdc0374 /]# cd /usr/src/ [root@03ca6bdc0374 src]# ls デバッグカーネル nginx-1.20.1.tar.gz [root@03ca6bdc0374 src]# tar xf nginx-1.20.1.tar.gz [root@03ca6bdc0374 src]# cd nginx-1.20.1 [root@03ca6bdc0374 nginx-1.20.1]# ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --デバッグあり\ --http_ssl_module \ で始まる --http_realip_module \ で始まる --http_image_filter_module \ で始まる --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --http-log-path=/var/log/nginx/access.log \ --error-log-path=/var/log/nginx/error.log [root@03ca6bdc0374 nginx-1.20.1]# make && make install // 環境変数を設定する [root@03ca6bdc0374 nginx-1.20.1]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh [root@03ca6bdc0374 nginx-1.20.1]# ソース /etc/profile.d/nginx.sh // リスニングポートを表示 [root@03ca6bdc0374 nginx-1.20.1]# nginx [root@03ca6bdc0374 nginx-1.20.1]# ss -antl 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス 聞く 0 128 0.0.0.0:80 0.0.0.0:* [root@localhost ~]# カール 172.17.0.2 <!DOCTYPE html> <html> <ヘッド> <title>nginx へようこそ!</title> <スタイル> 体 { 幅: 35em; マージン: 0 自動; フォントファミリー: Tahoma、Verdana、Arial、sans-serif; } </スタイル> </head> <本文> <h1>nginx へようこそ!</h1> <p>このページが表示されたら、nginxウェブサーバーは正常にインストールされており、 動作しています。さらに設定が必要です。</p> <p>オンラインドキュメントとサポートについては、 <a href="http://nginx.org/" rel="external nofollow" >nginx.org</a>。<br/> 商用サポートは以下からご利用いただけます。 <a href="http://nginx.com/" rel="external nofollow" >nginx.com</a> です。</p> <p><em>nginx をご利用いただきありがとうございます。</em></p> </本文> </html> // 設定ファイルを変更する [root@03ca6bdc0374 nginx-1.20.1]# vim /usr/local/nginx/conf/nginx.conf ...... http { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log ログ/access.log メイン; ファイル送信オン; #tcp_nopush オン; #キープアライブタイムアウト 0; キープアライブタイムアウト65; #gzip オン; サーバー{ 聞く 80; server_name ローカルホスト; #文字セット koi8-r; #access_log ログ/host.access.log メイン; 位置 / { ルートhtml; index index.php index.html index.htm; // index.php を追加 } ...... 場所 ~ \.php$ { root /var/www/html; // PHP テスト ページ ディレクトリ fastcgi_pass 127.0.0.1:9000; // 作業時には、これを PHP サーバーのアドレスに変更する必要があります fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $Document_Root$fastcgi_script_name; fastcgi_params を含めます。 } ...... daemon off; // 最後まで書き込む // 設定ファイルを再読み込みする [root@03ca6bdc0374 nginx-1.20.1]# nginx -s reload [root@03ca6bdc0374 nginx-1.20.1]# ss -antl 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス 聞く 0 128 0.0.0.0:80 0.0.0.0:* // nginx イメージを作成 [root@localhost ~]# docker commit -a '[email protected]' -c 'CMD ["/usr/local/nginx/sbin/nginx"]' -p 03ca6bdc0374 gaofan1225/nginx:v0.1 sha256:453bfb1a13ae0aeba38e2e26ebe03e09544aa2ea8b477e45e4fb8aa51fec3e92 [root@localhost ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ gaofan1225/nginx v0.1 453bfb1a13ae 16秒前 575MB centos 最新 5d0da3dc9764 2か月前 231MB 3. MySQLイメージの作成// Centos イメージを実行 [root@localhost ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ gaofan1225/nginx v0.1 453bfb1a13ae 16秒前 575MB centos 最新 5d0da3dc9764 2か月前 231MB [root@localhost ~]# docker run -it --name mysql 5d0da3dc9764 /bin/bash [ルート@3ea39d4dfa8f /]# // mysql インストール パッケージをコンテナーに転送します [root@localhost ~]# docker cp /usr/src/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz 9b6741a9ef22:/usr/src/ //依存パッケージをインストールします [root@9b6741a9ef22 /]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel ncurses-compat-libs [root@9b6741a9ef22 /]# yum -y libaio* をインストールします [root@9b6741a9ef22 /]# yum -y インストール numactl.x86_64 // mysqlユーザーを作成 [root@9b6741a9ef22 /]# useradd -r -M -s /sbin/nologin mysql // インストールパッケージを解凍します [root@9b6741a9ef22 /]# cd /usr/src/ [root@9b6741a9ef22 src]# ls デバッグカーネル mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz [root@9b6741a9ef22 src]# tar xf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ // ソフトリンクを作成し、学校全体に設定します [root@9b6741a9ef22 src]# cd /usr/local/ [root@9b6741a9ef22 ローカル]# ls bin include libexec 共有 等ライブラリ mysql-5.7.34-linux-glibc2.12-x86_64 ソース ゲーム lib64 sbin [root@9b6741a9ef22 ローカル]# ln -sv mysql-5.7.34-linux-glibc2.12-x86_64/mysql 'mysql' -> 'mysql-5.7.34-linux-glibc2.12-x86_64/' [root@9b6741a9ef22 ローカル]# chown -R mysql.mysql /usr/local/mysql* // 環境変数を設定する [root@9b6741a9ef22 local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh [root@9b6741a9ef22 ローカル]# ソース /etc/profile.d/mysql.sh [root@9b6741a9ef22 ローカル]# echo $PATH /usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin // ヘッダーファイルへのソフトリンクを作成します [root@9b6741a9ef22 local]# ln -s /usr/local/mysql/include /usr/include/mysql // ヘルプドキュメントを作成 [root@9b6741a9ef22 local]# cat /etc/man_db.conf MANDATORY_MANPATH /usr/local/mysql/man // ライブラリファイルを作成 [root@9b6741a9ef22 local]# cat /etc/ld.so.conf.d/mysql.conf ローカル [root@9b6741a9ef22 ローカル]# ldconfig // データ保存ディレクトリを作成 [root@9b6741a9ef22 local]# mkdir -p /opt/data [root@9b6741a9ef22 ローカル]# chown -R mysql.mysql /opt/data [root@9b6741a9ef22 ローカル]# ls -l /opt/ 合計 0 drwxr-xr-x. 2 mysql mysql 6 12月 4 01:31 データ // データベースを初期化します [root@9b6741a9ef22 local]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/opt/data/ // 設定ファイルを生成 [root@9b6741a9ef22 local]# cat > /etc/my.cnf <<EOF [mysqld] ベースディレクトリ = /usr/local/mysql データディレクトリ = /opt/data ソケット = /tmp/mysql.sock ポート = 3306 pid ファイル = /opt/data/mysql.pid ユーザー = mysql 名前解決をスキップ 終了 // mysql スタートアップ サービスを構成する [root@9b6741a9ef22 local]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /usr/local/mysql/support-files/mysql.server [root@9b6741a9ef22 ローカル]# sed -ri 's#^(datadir=).*#\1/opt/data#g' /usr/local/mysql/support-files/mysql.server // mysql サービスを開始します [root@9b6741a9ef22 local]# /usr/local/mysql/support-files/mysql.server start MySQL を起動しています。'/opt/data/9b6741a9ef22.err' にログを記録しています。 成功! [root@9b6741a9ef22 ローカル]# ss -antl 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス 聞く 0 80 *:3306 *:* // mysql起動スクリプトを記述する [root@9b6741a9ef22 local]# cd / [root@9b6741a9ef22 /]# cat /start.sh #!/bin/sh /usr/local/mysql/support-files/mysql.server を起動します バイナリ [root@9b6741a9ef22 /]# chmod +x /start.sh // mysql イメージを作成 [root@localhost ~]# docker commit -a '[email protected]' -c 'CMD ["/bin/bash","/start.sh"]' -p 9b6741a9ef22 gaofan1225/mysql:v0.1 sha256:7abe6fc819127b8ef3d9ac0ea3d24aadda1b189d739e4b53416530fc79db795f [root@localhost ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ gaofan1225/mysql v0.1 7abe6fc81912 10秒前 3.81GB gaofan1225/nginx v0.1 453bfb1a13ae 17分前 575MB centos 最新 5d0da3dc9764 2か月前 231MB 4. PHPイメージの作成// Centos イメージを実行 [root@localhost ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ gaofan1225/mysql v0.1 7abe6fc81912 10秒前 3.81GB gaofan1225/nginx v0.1 453bfb1a13ae 17分前 575MB centos 最新 5d0da3dc9764 2か月前 231MB [root@localhost ~]# docker run -it --name php 5d0da3dc9764 [ルート@c6882394804e /]# // PHP インストール パッケージと依存パッケージをコンテナーに転送します [root@localhost ~]# docker cp /usr/src/php-8.0.12.tar.gz c6882394804e:/usr/src/ [root@localhost ~]# docker cp /usr/src/oniguruma-devel-6.8.2-2.el8.x86_64.rpm c6882394804e:/usr/src/ // epel ソースと依存パッケージをダウンロード [root@c6882394804e /]# yum -y install epel-release [root@c6882394804e /]# yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd libzip-devel libsqlite3x libsqlite3x-devel oniguruma libzip-devel gcc gcc-c++ make [root@c6882394804e /]# yum -y libcurl-develをインストールします // コンパイルとインストールのために PHP インストール パッケージを解凍します [root@c6882394804e /]# cd /usr/src/ [root@c6882394804e src]# ls デバッグ-鬼車-devel-6.8.2-2.el8.x86_64.rpm カーネル php-8.0.12.tar.gz [root@c6882394804e src]# yum -y インストール oniguruma-devel-6.8.2-2.el8.x86_64.rpm [root@c6882394804e src]# tar xf php-8.0.12.tar.gz [root@c6882394804e src]# cd php-8.0.12 [root@c6882394804e php-8.0.12]# ./configure --prefix=/usr/local/php8 \ --with-config-file-path=/etc \ --enable-fpm \ --disable-debug \ --disable-rpath \ --enable-shared \ --enable-soap \ --openssl \ で --enable-bcmath \ --アイコン付き\ --with-bz2 \ --enable-calendar \ --curl \ で --enable-exif \ --enable-ftp \ --enable-gd \ --jpeg 付き \ --with-zlib-dir \ --freetype \ で --gettext \ で --enable-mbstring \ --enable-pdo \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --readline で読み込みます \ --enable-shmop \ --enable-simplexml \ --enable-sockets \ --zip \ で --enable-mysqlnd-compression-support \ --梨付き\ --enable-pcntl \ --enable-posix [root@c6882394804e php-8.0.12]# make && make install // 環境変数を設定する [root@c6882394804e php-8.0.12]# echo 'export PATH=/usr/local/php8/bin:$PATH' > /etc/profile.d/php.sh [root@c6882394804e php-8.0.12]# ソース /etc/profile.d/php.sh // php-fpm を設定する [root@c6882394804e php-8.0.12]# cp php.ini-production /etc/php.ini cp: '/etc/php.ini' を上書きしますか? y [root@c6882394804e php-8.0.12]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@c6882394804e php-8.0.12]# chmod +x /etc/rc.d/init.d/php-fpm [root@c6882394804e php-8.0.12]# cd /usr/local/php8/etc/ [root@c6882394804e など]# cp php-fpm.conf.default php-fpm.conf [root@c6882394804e など]# cd php-fpm.d/ [root@c6882394804e php-fpm.d]# cp www.conf.default www.conf // リスニングポートを表示 [root@c6882394804e php-fpm.d]# /usr/local/php8/sbin/php-fpm [root@c6882394804e php-fpm.d]# ss -antl 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス 聞く 0 128 127.0.0.1:9000 0.0.0.0:* // 起動スクリプトを記述する [root@c6882394804e php-fpm.d]# cd / [root@c6882394804e /]# cat /start.sh #!/bin/sh php-fpm は、/usr/local/php8/sbin/php-fpm にあります。 バイナリ [root@c6882394804e /]# chmod +x /start.sh // テストページを作成する [root@c6882394804e /]# mkdir -p /var/www/html [root@c6882394804e /]# cd /var/www/html/ [root@c6882394804e html]# vi index.php [root@c6882394804e html]# cat index.php <?php phpinfo(); ?> // PHP イメージを作成する [root@localhost ~]# docker commit -a '[email protected]' -c 'CMD ["/bin/bash","/start.sh"]' -p c6882394804e gaofan1225/php:v0.1 sha256:9bb6f6ec5b7cff9b3e92bc3b2f8eb2542c963643e74642be7eace465bc2225f9 [root@localhost ~]# docker イメージ リポジトリ タグ イメージ ID 作成 サイズ gaofan1225/php v0.1 9bb6f6ec5b7c 15秒前 1.53GB gaofan1225/mysql v0.1 7abe6fc81912 2時間前 3.81GB gaofan1225/nginx v0.1 453bfb1a13ae 2時間前 575MB centos 最新 5d0da3dc9764 2か月前 231MB 5. LNMPを実行するコンテナモードネットワークモードを使用する [root@localhost ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 // nginxコンテナを起動します [root@localhost ~]# docker run -dit --name nginx -p 80:80 453bfb1a13ae a8ff680fc2bb61118d10ab1926fffed9c4975f72834d1628bf0cfff851bd7935 [root@localhost ~]# docker ps コンテナID イメージ コマンド 作成ステータス ポート名 a8ff680fc2bb 453bfb1a13ae "/usr/local/nginx/sb..." 16 秒前 14 秒前にアップ 0.0.0.0:80->80/tcp、:::80->80/tcp nginx [root@localhost ~]# docker exec -it a8ff680fc2bb /bin/bash [root@a8ff680fc2bb /]# ss -antl 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス 聞く 0 128 0.0.0.0:80 0.0.0.0:* // mysqlコンテナを起動します [root@localhost ~]# docker run -dit --name mysql --network container:a8ff680fc2bb 7abe6fc81912 e776f9e93c6ca0d8fba53957cfa9e85105913fcbe53a9400c2657127eb049c2d [root@localhost ~]# docker ps コンテナID イメージ コマンド 作成ステータス ポート名 e776f9e93c6c 7abe6fc81912 "/bin/bash /start.sh" 9秒前 8秒前 mysql a8ff680fc2bb 453bfb1a13ae "/usr/local/nginx/sb..." 2 分前 2 分前にアップ 0.0.0.0:80->80/tcp、:::80->80/tcp nginx [root@localhost ~]# docker exec -it e776f9e93c6c /bin/bash [root@a8ff680fc2bb /]# ss -antl 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス 聞く 0 128 0.0.0.0:80 0.0.0.0:* 聞く 0 80 *:3306 *:* // PHPコンテナを起動します [root@localhost ~]# docker run -dit --name php --network container:a8ff680fc2bb 9bb6f6ec5b7c e80155914f858910ffb678a7d294e68804f735bf9a52efd21a036f7abee23bbe [root@localhost ~]# docker ps コンテナID イメージ コマンド 作成ステータス ポート名 e80155914f85 9bb6f6ec5b7c "/bin/bash /start.sh" 4秒前 3秒前 php e776f9e93c6c 7abe6fc81912 "/bin/bash /start.sh" 約 1 分前 約 1 分前 mysql a8ff680fc2bb 453bfb1a13ae "/usr/local/nginx/sb..." 4 分前 4 分前にアップ 0.0.0.0:80->80/tcp、:::80->80/tcp nginx [root@localhost ~]# docker exec -it e80155914f85 /bin/bash [root@a8ff680fc2bb /]# ss -antl 状態 受信Q 送信Q ローカルアドレス:ポート ピアアドレス:ポート プロセス 聞く 0 128 127.0.0.1:9000 0.0.0.0:* 聞く 0 128 0.0.0.0:80 0.0.0.0:* 聞く 0 80 *:3306 *:* 6. Webビューこれで、Docker コンテナで LNMP をコンパイルする実装例に関するこの記事は終了です。Docker で LNMP をコンパイルする方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTMLウェブページテーブル構造化マークアップの応用に関する簡単な説明
目次説明する成し遂げるプロジェクトのディレクトリ構造は次のとおりです。効果図は以下のとおりです要約す...
1、%: 0 個以上の任意の文字を表します。あらゆるタイプと長さの文字に一致します。場合によっては、...
目次背景インスピレーションは人生から生まれる速達配送の最適化原則GaussDB の最適化 (MySQ...
mysql クエリ制御ステートメントフィールド重複排除 **キーワード: 明確** 構文: テーブル...
デフォルトでは、Flash は常にページのトップレベルに表示されます。つまり、ページに DHTML ...
この記事の例では、虫眼鏡効果を実現するためのjsの具体的なコードを参考までに共有しています。具体的な...
今日、MySQL をインストールすると次のエラー メッセージが表示されます。 かなり長い時間ネットで...
まず、状態マネージャーとは何か、そしてそれが何をするのかを知る必要があります。複数のページで同じプロ...
1. Vueプロジェクトのパッケージ化開発されたvueプロジェクトに次の名前を入力し、パッケージ化し...
最初は悲しい気持ちになりました。スクリーンショットは以下の通りです。 少し苦労しましたが、解決策は次...
1. Dockerの紹介1.1 仮想化1.1.1 仮想化とは何ですか?コンピュータにおける仮想化とは...
主な違い: 1. タイプSQL データベースは主にリレーショナル データベース (RDBMS) とし...
ブラウザによって動作が異なるだけでなく、フォントやテキスト サイズによっても動作が異なります。フォー...
MySQL 8.0.16 にインストールする場合、「UTF8B3」ではなく「UTF8B4」が使用さ...
今回はReact-Flaskフレームワーク上でアップロードコンポーネントを開発するスキルについてお話...