まず、centos7に、たとえば、これは比較的単純で、ドッキングウィンドウ環境をインストールする必要があります
centos7にインストールされているドッキングウィンドウは、カーネルのバージョン3.10+を必要とするバージョンは、独自の交換に関する情報と一致しない場合、あなたはのuname -rによってカーネルのバージョン番号を確認することができ、確認してください。
準備ができたら、ドッカサービスをインストールするには、次のコマンドを使用します。
yumを インストール -yドッキングウィンドウを
以下は、ドッキングウィンドウの開始で、インストールが完了ドッキングウィンドウのサービスで起動し、停止し、コマンドを再起動します
systemctl再起動ドッカ#再起動
systemctlドッキングウィンドウの#ストップが停止
ドッキングウィンドウの#開始が開始systemctl
開始からドッキングウィンドウの#ブートを有効systemctl
systemctlステータスドッキングウィンドウ#サービスのステータス
これまでのところ、ドッキングウィンドウのサービスは準備ができて、私たちは、ドッキングウィンドウドッキングウィンドウ-vでバージョンを見ることができます
その後、我々は、PHP環境のドッキングウィンドウを構築するために使用します
次のように我々は簡単に、一般的に使用されるコマンドのドッキングウィンドウのいくつかを説明します。
ドッキングウィンドウミラー倉庫検索ミラーから#、ドッカ検索のMySQLの例 ドッキングウィンドウの検索[ミラー名を見つける必要がある] :#リモートローカル、例ドッカMySQLを引くにミラーリング引き5.7。23 ドッカプル[イメージ名]:[バージョン] #セルフ定義は、現在のディレクトリにDockerfileファイルの必要性に注意を払う、ミラーを作成します 。ノートは、#の末尾にあります「」必見です ドッカービルド - 。トン[カスタムイメージ名]を #ローカルミラーを見る、あなたがイメージの名前を見ることができ、画像ID 、バージョン番号、作成時刻と画像サイズ ドッカーロイヤリティーフリー #削除ミラー、占有無容器でない画像を削除するには注意を払う必要が、IDをミラーリング全てがフル入力しないで #の例ドッカーイメージRM 7BC ドッカー画像RM [ミラーのid] すべてのコンテナと詳細#ビューをあなたは、船舶の名称、コンテナID、コンテナのステータス情報を確認でき ドッカーPS - idが全体を記述する必要はありません#打ち上げコンテナ、88Dの例を開始ドッカー ドッカーが開始[コンテナID] #停止コンテナを ドッカーSTOP [コンテナID] #再起動コンテナ ドッキングウィンドウの再起動[コンテナID] #ミラーを作成し、詳細な説明は続く ドッキングウィンドウの実行[パラメータ1] [2パラメータ] ...ミラー名の インタラクティブの内部に#コンテナを ドッカーExecの [ITを迅速化コンテナ名/コンテナID] / binに/ bashの
ドッカー環境全体は、一般的に画像を取得するために3段階のプロセスとして理解することができる - >実行容器 - >コンテナを作成します。
PHPのイメージをダウンロードし、PHP-FPM
まず、我々は2つの方法がありますが、PHP鏡画像の取得を必要とする、我々は最初のメソッドを使用するすべての最初のものは、既存の画像内の画像ライブラリドッキングウィンドウへの直接アクセスがあり、もう一方は、ミラーdockerfile彼のカスタムファイルエディタです第二の方法の背後にある、比較的単純なと言っているので
7.1ミラー、基本的に拡張に使用するように設定されています。私たちは、ドッキングウィンドウプルは既存のPHPミラーに私を得た、私はleleos / PHP-FPMをお勧めします使用します
ドッキングウィンドウプルleleos / PHP-FPM:7.1
nginxのミラーの構築
私たちは直接ダウンロード他の人が鏡を使用することである前に、私たち自身のミラーが最初の(ファイル名としてDockerfileを推奨)ディレクトリに「Dockerfile」ファイルを作成し、dockerfile使用してカスタムファイルを作成するには、次のように書き込み、
ミラーリング容器ベースの画像、ここでCentOSのシステム基づいて設定# hub.c. FROM 163 .COM /公共/ CentOSの:最新 情報の#セット MAINTAINERのTaurus12C < 1402410174 @ qq.com> # のインストールが異なり RUNのRPM --rebuilddbを&& yumを インストール -yのautoconf automakeにメイク のwget PROC-develの-ツールNETたzlibはzlib-develのをメイク gccの G ++のOpenSSL-develのPCRE PCRE-develのタール #ダウンロードソフトウェア圧縮パッケージnginxの RUNののwget HTTP:// nginx.org/download/nginx-1.17 .1.tar.gz カレントディレクトリに#エキス RUNのタール nginx- -zxvf 1.17。1。タール.gzを #设置当前操作目录 WORKDIR nginxの - 1.17。1 #配置nginxの RUN。/のconfigure --prefix =は/ usr / local / nginxの&& 作る && 作る インストール RUN のrm -rf ../nginx* && yumのクリーンすべて\ && エコー " $ {TIME_ZOME} " >の/ etc / タイムゾーン\を && " ./sbin/nginx "、" -g "、" オフデーモン; " ]
ここでは、一般的に、コマンドの注意をすべて大文字にする必要があり、上記のコマンドファイルの意味について話します
FROM - ベースイメージを設定します
MAINTAINER - このdockerfile著者情報を設定します
RUNは - コンフィギュレーションは、我々はnginxのの鏡像を作成するためにここにいるので、あなたのコンテナやステップによる操作ステップの残りの部分であるので、上記の操作が実行されているので、より重要な、容器内のnginxのサービスをインストールします
WORKDIRは - 操作のCDと同様に、容器の操作で、現在のパスを設定します。
EXPOSE - これはコンテナポートを公開するのは、ホストマッピングを完了することができます
CMDは - このコマンドは、コンテナが作成された後に開始自動的に実行され、ここでサービスの平均のnginxを起動するためのコマンドです
我々は概念を持っているように、他のコマンドは、ここで我々はそれらを説明し、理解するための独自の情報にアクセスするために行くことができます
編集後さて、私たちはあなたのファイルがDockerfile直接うまく実行された場合は、ミラーを構築するために、現在のディレクトリでビルドし実行します。バックに注意してください。「」忘れないでください
ドッキングウィンドウは、-t nginxのを構築します。
私たちは地元のmirror'veを表示するドッキングウィンドウの画像を使用して終了した後、ミラーリングnginxのとleleos / PHP-FPM 2を得ました。その後、我々はプロジェクトを実行するPHP環境のPHPを作成するための容器を使用することができます
カスタムネットワークdcokerを作成します。
時々、私たちはnginxのは、FPMを使用する必要があるなど、容器との間に接続できるようにする必要がありますが、nginxのとleleos / PHP-FPMは、容器内の我々は、各コンテナにアクセスできるようにする方法を見つける必要がある。この時間ではない、いくつかあります道
図1に示すように、容器との間の容器--link接続を開始した後、容器nginxの内のアドレスに対応fastcgi_pass nginxの設定ファイルを変更するとき
図2に示すように、取得されたネットワークIP PHP-FPM容器、次いで容器nginxの内のアドレスに対応fastcgi_pass nginxの設定ファイルを修正します
図3は、カスタムネットワークドッキングウィンドウを作成し、コンテナのnginxのアドレスに対応しfastcgi_pass nginxの設定ファイルを変更します
必要であれば、ここで著者は第三の方法、他の二つを使用することをお勧めします、について自分自身を知らせます
カスタムネットワークドッキングウィンドウのコマンドを作成し、ドッキングウィンドウのネットワークを作成し、[ネットワークグループ名]
ドッキングウィンドウネットワークはLNMP作成します
実行後、私たちはあなただけドッカネットワークLSを作成したネットワークグループを見ることができます
コンテナを作成し、ドッキングウィンドウのビルドPHP環境を使用
それはそう多くは、仕事をする準備ができていると言い、そして今、我々は正式な環境を構築する必要があります
コンテナnginxのを作成します。
ドッキングウィンドウで実行-itd --name nginxの--network LNMP -p 80:80 -v / var / www / htmlと設定:/ var / www / htmlと設定-vは/ usr / local / nginxの/ confに/バーチャルホスト:は/ usr / local / nginxの/ confに/バーチャルホストのnginx
上記指令の意味を説明します
ドッキングウィンドウを実行します。コンテナを作成開始
-itd:ここでは省略され、対応する動作-i -t -d、-i対話操作、-t端末、-d背景
--name:容器の名前を指定します
--network:指定されたネットワーク・グループへのコンテナ
-p:コンテナ内のマッピングホスト・ポート
-v:コンテナはディレクトリをマウントし、それが人気のコンテナ収納スペースがホスト容器内のファイル、およびファイルを追加することを理解すべきであるとスペースが一般的です。ここで私は2つのディレクトリをマウントし、プロジェクトディレクトリのHTMLは、あるプロファイルディレクトリのバーチャルホストであるので、容器を入力しない変更することができるようになります
nginxの:nginxので用いられる容器の鏡像を指定します
PHPのコンテナサービスを作成します。
ドッキングウィンドウは、--nameのphp-FPM --network LNMP -p -itd実行9000:9000 -v / var / www / htmlと設定:/ var / www / htmlと設定leleos / PHP-FPM:7.1
プロジェクトディレクトリは、ボディああ、そのディレクトリ内のnginxとPHPコンテナ設定が必要であることに注意してください。これまで我々は、コンテナを開始している、あなたは我々だけの状態によって作成され、コンテナが開始したのps -aビューをドッキングウィンドウすることができます。
同様に操作の最後のステップとしてここで終わらないように、それが正しいnginxの構成です。まず、我々はドッキングウィンドウのexecの内部容器に-id nginxの[船名/コンテナID] / binに/ bashの
ドッキングウィンドウのexec -it nginxの/ binに/ bashの
私たちは、コンテナの内側にこのnginxの中に入ることができ、上記のコマンドを入力し、あなたが内部ホストに戻るには、終了する必要がある場合は、それにコンテナ内の出口を入力
以下のように、は/ usr / local / nginxの/ confにディレクトリエディタnginx.confファイルを入力します。
#USERの誰もいません。 worker_processes 1 ; #error_logログ / error.logに。 #error_logログ / error.logに予告。 #error_logログ /error.log 情報。 #pidログ / nginx.pid。 イベント{ worker_connections 1024 。 } HTTP { のmime.typesを含みます。 default_typeアプリケーション / octet- ストリーム。 #log_formatメイン ' $ REMOTE_ADDR - $ REMOTE_USER [$ time_local] "$依頼" ' # "$ステータスの$ body_bytes_sent "$ HTTP_REFERER" ' # ' "$ HTTP_USER_AGENT" "$ HTTP_X_FORWARDED_FOR" " ; #access_logログ / メインのaccess.log。 sendfileの上; 上#tcp_nopush; #keepalive_timeout 0 ; keepalive_timeout 65 ; #のGZIP に、 サーバー{ 聞く 80 。 サーバー名はlocalhost。 #域名 インデックスのindex.htmlのindex.htm index.phpを。 ルート は/ var / www /のhtmlの。 #ここでちょうどプロジェクトディレクトリのマウント埋めるため #charsetのKOI8 - R; #access_logログ / host.access.logメイン; #error_page 404 / 404 の.html; #は、サーバーページをリダイレクトすると、静的なページでエラー / 50x.html # error_page 500 502 503 504 / 50x.html; LOCATION = / 50x.html { ルートHTML; } #プロキシのApacheにPHPスクリプトがリッスン127.0。 0.1: 80 # #場所〜\ .phpの$ { #proxy_pass HTTP:// 127.0.0.1; #} にFastCGIサーバにPHPスクリプトでの#のパスでリスニング127.0。0.1:9000 # LOCATION〜\ .phpの$ { ルートHTML; fastcgi_pass lnmp_php:9000 ; 作成し、私たちのPHPのコンテナ港のマッピング時に#を使用して、ネットワークグループ内ここでネットワークグループを使用するPHPのコンテナ港に注意してください fastcgi_param SCRIPT_FILENAMEの/ var / WWW / HTML $ fastcgi_script_name; fastcgi_paramsが含まれる; } #の.htaccessファイルへのアクセスを拒否し、IF Apacheの' Sルートドキュメント #は、nginxのに同意' Sワン #の #location〜/ \ .htから{ #すべて拒否; #} } インクルードが含まは/ usr / LOCA / nginxの/ confに/バーチャルホスト/ * .confの; #ここで我々がハング私たちは、ファイルを変更するために、コンテナnginx.confに新しいアイテムを追加する必要がないように、プロファイルディレクトリのアドレスをアップロードするために、再起動するだけに、ホスト上のコンテナを変更する必要が IP-のミックスを使用して#別の仮想ホスト名- 、およびベースのコンフィギュレーションポート #1 の#server { #8000を聞く; #聞くsomenameの:8080; #サーバー名somenameのエイリアスanother.alias; #ロケーション/ { #ルートのhtml; #インデックスのindex.html index.htmを。 #} #} #HTTPSサーバ #1 の#server { #443 SSLを聞きます。 #サーバー名はlocalhost。 #ssl_certificateのcert.pem。 #ssl_certificate_keyのcert.key。 #1 ssl_session_cache共有:SSL:1メートルを。 #ssl_session_timeoutの5メートル。 !!のssl_ciphers HIGH#:aNULL:MD5; ;の#ssl_prefer_server_ciphers #/ {位置 #ルートHTML。 #インデックスのindex.html index.htmを。 #} #} }
実装に、まあ、私たちはnginxの設定ファイルをリロード編集した後は/ usr / local / nginxの/ sbinディレクトリの下にリロード./nginx。そして、コンテナ出口を出ます
エントリー/ index.phpのindex.phpのファイルに書かれた、成功した変更を構築するかどうかを調べるvar / www / htmlディレクトリの下にテストを作成します
<?PHPの エコー 'のHello World!';
環境を代表して、出力に「Hello World!」が成功を構築する場合は、サーバーのアドレスまたはドメイン名にアクセスするには、ブラウザを開き、
他の
これまでのところ、我々はいくつかの利用ドッキングウィンドウを持っている、あなたは、そのような問題が発生した場合は、あなたが私に以下のコメントを与える、または当社の交換基バックルグループを追加することができ、コンテナとしてMySQLのサービスを、独自のRedisを構築しようとすることができます:735713840(注ブログパーク)でした頼みます