1.前提はドッカーがすでにインストールされています
2.ミラーnginxのプル
docker pull nginx
#使用命令查看拉取到的镜像
docker images
3.ファイル名を指定して実行nginxのミラー
docker run -d -p 80:80 --name nginx nginx
パラメータ説明
-d
ランタイムイメージをバックグラウンドで実行されているモードを、保護するために-p
ポートマッピングポートミラーリングをホスト、ホストポートは、右のミラーポートで、左側にある80
nginxのアクセスポートであります--name
ユニークなエイリアスからコンテナへ
入力を開始した後docker ps -a
、血管の走行を確認します:
4.アクセスnginxの
ブラウザのアクセスhttp://ip
に成功ページを実行するには、次の手順に
5.設定nginxの
- 私たちは、最初nginxのログ、設定ファイルと静的リソースに関連したディレクトリに格納するためにホストを作成し、それがコンテナのパスに対応するマウントする必要があります。
- あなたは、コンテナが唯一の軽量コンテナです意見非の打ち所のないデータ削減、上に取り付けられた容器を再起動する必要がハングアップすることを確認することができますので、我々は唯一、コンテナのリソースを更新することができ、ホスト上のディレクトリにプロファイルまたは静的ファイルを変更する必要があり、その後の更新情報迅速かつ容易な理由。MySQLのコンテナの残りの部分も撃墜データコンテナの損失を防ぐために/データデータファイルをマウントするために覚えておく必要がありますようにnginxのは、コンテナだけではありません。
mkdir -p /home/service/nginx/log
mkdir -p /home/service/nginx/conf
mkdir -p /home/service/nginx/conf.d
mkdir -p /home/service/nginx/static
mkdir -p /home/service/nginx/ssl
confディレクトリとちょうどnginxのコンテナから作成したホストにコンフィギュレーションファイルをコピーします
docker cp nginx:/etc/nginx/nginx.conf /home/service/nginx/conf/nginx.conf
我々はすでに見ることができます
コンテンツを見てください
図は、コンフィギュレーション・ファイルは、他の設定ファイルを導入し、見ることができますので、我々はする必要がありinclude
、ホストへの導入のコピーを提出、私たちは、それらのファイルが呼び出されるかわからないので、私たちは、内側容器に確認する必要があります
docker exec -it nginx /bin/bash
cd /etc/nginx/conf.d
ls
あなたはは、default.confファイルがある見ることができます
私たちは、ホストにファイルをコピーする必要があり、使用しexit
た容器を終了するには、コマンドを
exit
docker cp nginx:/etc/nginx/conf.d/default.conf /home/service/nginx/conf.d/default.conf
私たちは、そのページの前にnginxのを訪問したときに覚えていますか?はい、そのページをホストにコピーする必要があります
docker cp nginx:/usr/share/nginx/html/index.html /home/service/nginx/static/index.html
6.プロファイルの変更
まず、ホストconfファイルのうち、コピーを変更し、変更し始めたnginx.conf
結果の後に変更された設定ファイルを変更し、:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
charset utf-8;
keepalive_timeout 60;
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 /var/log/nginx/access.log main;
server {
listen 80;
server_name www.roes.top;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
include /etc/nginx/conf.d/*.conf;
}
ビューdefault.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
nginxの最後のストップコンテナとコンテナを削除
docker stop nginx
docker rm nginx
nginxのは、ミラーを再起動します
docker run -p 443:443 -p 80:80 --name nginx \
--link jenkins \
-v /home/service/nginx/static:/usr/share/nginx/html \
-v /home/service/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/service/nginx/log:/var/log/nginx \
-v /home/service/nginx/conf.d:/etc/nginx/conf.d \
-v /home/service/nginx/ssl:/ssl \
-d nginx
-v
これは、ホストディレクトリディレクトリはコロンの後にコンテナに搭載されていることを意味し
--link
nginxのは、プロファイルを使用できるように、一意の名前でゼロコンテナに従った容器、接続するためjenkins:端口
に構成を
ここでは、HTTPS用マルチモニタ443ポートは、設定後の
デフォルトのnginxのを修正するindex.html
より認識、
vim /home/service/nginx/static/index.html
7.設定のHTTPSアクセス
私は、我々はBaiduのを見ることができ、アリが1年間無料のSSL証明書を適用し、クラウドにあったダウンロードはnginxのです
そして、最適化された構成の数を追加しましたnginx.conf
:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 2k;
large_client_header_buffers 4 4k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
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 /var/log/nginx/access.log main;
server {
listen 80;
server_name www.example.com ;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
#监听的端口号
listen 443 ssl;
server_name www.example.com ;
ssl_certificate /ssl/1492507_www.example.com.pem;
ssl_certificate_key /ssl/1492507_www.example.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
include /etc/nginx/conf.d/*.conf;
}
注意:この更新は、ホスト上でnginx.conf
そして、できる容器にnginxの再起動
もコンテナを入力せずに再起動され、コンテナが直接再起動することができます
docker restart nginx
docker exec -it nginx /bin/bash
nginx -s reload
コンフィギュレーション