安装nginx docker镜像,获取nginx官方镜像
docker pull nginxdocker pull nginxdocker pull nginx
查看镜像库
docker imagesdocker imagesdocker images
使用nginx镜像来创建nginx容器实例
docker run <span class="token operator">--</span>name nginx<span class="token operator">-</span>test <span class="token operator">-p</span> <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">-d</span> nginxdocker run <span class="token operator">--</span>name nginx<span class="token operator">-</span>test <span class="token operator">-p</span> <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">-d</span> nginxdocker run --name nginx-test -p 80:80 -d nginx
创建容器成功后,启动nginx容器
docker run <span class="token operator">--</span>name nginx<span class="token operator">-</span>test <span class="token operator">-p</span> <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">-d</span> nginxdocker run <span class="token operator">--</span>name nginx<span class="token operator">-</span>test <span class="token operator">-p</span> <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">-d</span> nginxdocker run --name nginx-test -p 80:80 -d nginx
访问本机测试,将nginx关键目录映射到本机,首先在本机创建nginx的一些文件存储目录
mkdir <span class="token operator">-p</span> <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>www <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>logs <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>confmkdir <span class="token operator">-p</span> <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>www <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>logs <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>confmkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
查看nginx-test容器id
docker ps <span class="token operator">-</span>adocker ps <span class="token operator">-</span>adocker ps -a
将nginx-test容器配置文件copy到本地
docker cp c719d006e6f9<span class="token punctuation">:</span><span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token operator">/</span>nginx<span class="token operator">.</span>conf <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>confdocker cp c719d006e6f9<span class="token punctuation">:</span><span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token operator">/</span>nginx<span class="token operator">.</span>conf <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>confdocker cp c719d006e6f9:/etc/nginx/nginx.conf /root/nginx/conf
创建新nginx容器nginx-web,并将www,logs,conf目录映射到本地
docker run <span class="token operator">-d</span> <span class="token operator">-p</span> <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">--</span>name nginx<span class="token operator">-</span>web <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>www<span class="token punctuation">:</span><span class="token operator">/</span>usr<span class="token regex">/share/ngin</span><span class="token operator">x</span><span class="token operator">/</span>html <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token regex">/conf/nginx</span><span class="token operator">.</span>conf<span class="token punctuation">:</span><span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token operator">/</span>nginx<span class="token operator">.</span>conf <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>logs<span class="token punctuation">:</span><span class="token operator">/</span>var<span class="token regex">/log/ngin</span><span class="token operator">x</span> nginxdocker run <span class="token operator">-d</span> <span class="token operator">-p</span> <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">--</span>name nginx<span class="token operator">-</span>web <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>www<span class="token punctuation">:</span><span class="token operator">/</span>usr<span class="token regex">/share/ngin</span><span class="token operator">x</span><span class="token operator">/</span>html <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token regex">/conf/nginx</span><span class="token operator">.</span>conf<span class="token punctuation">:</span><span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token operator">/</span>nginx<span class="token operator">.</span>conf <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>logs<span class="token punctuation">:</span><span class="token operator">/</span>var<span class="token regex">/log/ngin</span><span class="token operator">x</span> nginxdocker run -d -p 80:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx
启动nginx
docker start nginx<span class="token operator">-</span>webdocker start nginx<span class="token operator">-</span>webdocker start nginx-web
在本机/root/nginx/www目录下创建index.html内容为
<span class="token punctuation">[</span>root<span class="token variable">@localhost</span> <span class="token operator">~</span><span class="token punctuation">]</span> <span class="token operator"><</span><span class="token operator">!</span>DOCTYPE html<span class="token operator">></span> <span class="token filehandle symbol"><html></span> <span class="token filehandle symbol"><body></span> <span class="token filehandle symbol"><p><em></span>Thank you <span class="token keyword">for</span> using nginx<span class="token operator"><</span><span class="token regex">/em></p</span><span class="token operator">></span> <span class="token filehandle symbol"></body></span> <span class="token filehandle symbol"></html></span><span class="token punctuation">[</span>root<span class="token variable">@localhost</span> <span class="token operator">~</span><span class="token punctuation">]</span> <span class="token operator"><</span><span class="token operator">!</span>DOCTYPE html<span class="token operator">></span> <span class="token filehandle symbol"><html></span> <span class="token filehandle symbol"><body></span> <span class="token filehandle symbol"><p><em></span>Thank you <span class="token keyword">for</span> using nginx<span class="token operator"><</span><span class="token regex">/em></p</span><span class="token operator">></span> <span class="token filehandle symbol"></body></span> <span class="token filehandle symbol"></html></span>[root@localhost ~] <!DOCTYPE html> <html> <body> <p><em>Thank you for using nginx</em></p> </body> </html>
完成后重新访问本机,打开网页输入本机ip
设置反向代理
进入到/root/nginx/conf/nginx.conf 添加如下即可
server<span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> charset utf<span class="token operator">-</span><span class="token number">8</span><span class="token punctuation">;</span> server_name <span class="token vstring string">192.168.181.128</span><span class="token punctuation">;</span> location <span class="token operator">/</span> <span class="token punctuation">{<!-- --></span> proxy_pass http<span class="token punctuation">:</span><span class="token operator">//</span><span class="token vstring string">192.168.181.128</span><span class="token punctuation">:</span><span class="token number">8080</span><span class="token punctuation">;</span> proxy_redirect <span class="token keyword">default</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span>server<span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> charset utf<span class="token operator">-</span><span class="token number">8</span><span class="token punctuation">;</span> server_name <span class="token vstring string">192.168.181.128</span><span class="token punctuation">;</span> location <span class="token operator">/</span> <span class="token punctuation">{<!-- --></span> proxy_pass http<span class="token punctuation">:</span><span class="token operator">//</span><span class="token vstring string">192.168.181.128</span><span class="token punctuation">:</span><span class="token number">8080</span><span class="token punctuation">;</span> proxy_redirect <span class="token keyword">default</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span>server{ listen 80; charset utf-8; server_name 192.168.181.128; location / { proxy_pass http://192.168.181.128:8080; proxy_redirect default; } }
user nginx<span class="token punctuation">;</span> worker_processes auto<span class="token punctuation">;</span> error_log <span class="token operator">/</span>var<span class="token regex">/log/ngin</span><span class="token operator">x</span><span class="token operator">/</span>error<span class="token operator">.</span>log notice<span class="token punctuation">;</span> pid <span class="token operator">/</span>var<span class="token regex">/run/nginx</span><span class="token operator">.</span>pid<span class="token punctuation">;</span> events <span class="token punctuation">{<!-- --></span> worker_connections <span class="token number">1024</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> http <span class="token punctuation">{<!-- --></span> include <span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token operator">/</span>mime<span class="token operator">.</span>types<span class="token punctuation">;</span> default_type application<span class="token operator">/</span>octet<span class="token operator">-</span>stream<span class="token punctuation">;</span> log_format main <span class="token string">'$remote_addr - $remote_user [$time_local] "$request" '</span> <span class="token string">'$status $body_bytes_sent "$http_referer" '</span> <span class="token string">'"$http_user_agent" "$http_x_forwarded_for"'</span><span class="token punctuation">;</span> access_log <span class="token operator">/</span>var<span class="token regex">/log/ngin</span><span class="token operator">x</span><span class="token operator">/</span>access<span class="token operator">.</span>log main<span class="token punctuation">;</span> sendfile on<span class="token punctuation">;</span> keepalive_timeout <span class="token number">65</span><span class="token punctuation">;</span> include <span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token regex">/conf.d/</span><span class="token operator">*</span><span class="token operator">.</span>conf<span class="token punctuation">;</span> server<span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> charset utf<span class="token operator">-</span><span class="token number">8</span><span class="token punctuation">;</span> server_name <span class="token vstring string">192.168.181.128</span><span class="token punctuation">;</span> location <span class="token operator">/</span> <span class="token punctuation">{<!-- --></span> proxy_pass http<span class="token punctuation">:</span><span class="token operator">//</span><span class="token vstring string">192.168.181.128</span><span class="token punctuation">:</span><span class="token number">8080</span><span class="token punctuation">;</span> proxy_redirect <span class="token keyword">default</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span>user nginx<span class="token punctuation">;</span> worker_processes auto<span class="token punctuation">;</span> error_log <span class="token operator">/</span>var<span class="token regex">/log/ngin</span><span class="token operator">x</span><span class="token operator">/</span>error<span class="token operator">.</span>log notice<span class="token punctuation">;</span> pid <span class="token operator">/</span>var<span class="token regex">/run/nginx</span><span class="token operator">.</span>pid<span class="token punctuation">;</span> events <span class="token punctuation">{<!-- --></span> worker_connections <span class="token number">1024</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> http <span class="token punctuation">{<!-- --></span> include <span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token operator">/</span>mime<span class="token operator">.</span>types<span class="token punctuation">;</span> default_type application<span class="token operator">/</span>octet<span class="token operator">-</span>stream<span class="token punctuation">;</span> log_format main <span class="token string">'$remote_addr - $remote_user [$time_local] "$request" '</span> <span class="token string">'$status $body_bytes_sent "$http_referer" '</span> <span class="token string">'"$http_user_agent" "$http_x_forwarded_for"'</span><span class="token punctuation">;</span> access_log <span class="token operator">/</span>var<span class="token regex">/log/ngin</span><span class="token operator">x</span><span class="token operator">/</span>access<span class="token operator">.</span>log main<span class="token punctuation">;</span> sendfile on<span class="token punctuation">;</span> keepalive_timeout <span class="token number">65</span><span class="token punctuation">;</span> include <span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token regex">/conf.d/</span><span class="token operator">*</span><span class="token operator">.</span>conf<span class="token punctuation">;</span> server<span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> charset utf<span class="token operator">-</span><span class="token number">8</span><span class="token punctuation">;</span> server_name <span class="token vstring string">192.168.181.128</span><span class="token punctuation">;</span> location <span class="token operator">/</span> <span class="token punctuation">{<!-- --></span> proxy_pass http<span class="token punctuation">:</span><span class="token operator">//</span><span class="token vstring string">192.168.181.128</span><span class="token punctuation">:</span><span class="token number">8080</span><span class="token punctuation">;</span> proxy_redirect <span class="token keyword">default</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span>user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; 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; sendfile on; keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; server{ listen 80; charset utf-8; server_name 192.168.181.128; location / { proxy_pass http://192.168.181.128:8080; proxy_redirect default; } } }
这样就可以用本机80端口代理本机8080端口了,直接使用80访问端口
删除指定容器
docker stop nginx<span class="token operator">-</span>web docker rm <span class="token operator">-f</span> nginx<span class="token operator">-</span>webdocker stop nginx<span class="token operator">-</span>web docker rm <span class="token operator">-f</span> nginx<span class="token operator">-</span>webdocker stop nginx-web docker rm -f nginx-web
docker设置自动启动
systemctl list<span class="token operator">-</span>units <span class="token operator">--</span>type<span class="token operator">=</span>service systemctl list<span class="token operator">-</span>unit<span class="token operator">-</span>files <span class="token operator">|</span> grep enable systemctl enable docker systemctl disable dockersystemctl list<span class="token operator">-</span>units <span class="token operator">--</span>type<span class="token operator">=</span>service systemctl list<span class="token operator">-</span>unit<span class="token operator">-</span>files <span class="token operator">|</span> grep enable systemctl enable docker systemctl disable dockersystemctl list-units --type=service systemctl list-unit-files | grep enable systemctl enable docker systemctl disable docker
docker容器设置自动启动
docker run <span class="token operator">-d</span> <span class="token operator">-p</span> <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">--</span>name nginx<span class="token operator">-</span>web <span class="token operator">--</span>restart<span class="token operator">=</span>always <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>www<span class="token punctuation">:</span><span class="token operator">/</span>usr<span class="token regex">/share/ngin</span><span class="token operator">x</span><span class="token operator">/</span>html <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token regex">/conf/nginx</span><span class="token operator">.</span>conf<span class="token punctuation">:</span><span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token operator">/</span>nginx<span class="token operator">.</span>conf <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>logs<span class="token punctuation">:</span><span class="token operator">/</span>var<span class="token regex">/log/ngin</span><span class="token operator">x</span> nginxdocker run <span class="token operator">-d</span> <span class="token operator">-p</span> <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">--</span>name nginx<span class="token operator">-</span>web <span class="token operator">--</span>restart<span class="token operator">=</span>always <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>www<span class="token punctuation">:</span><span class="token operator">/</span>usr<span class="token regex">/share/ngin</span><span class="token operator">x</span><span class="token operator">/</span>html <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token regex">/conf/nginx</span><span class="token operator">.</span>conf<span class="token punctuation">:</span><span class="token regex">/etc/ngin</span><span class="token operator">x</span><span class="token operator">/</span>nginx<span class="token operator">.</span>conf <span class="token operator">-</span>v <span class="token regex">/root/ngin</span><span class="token operator">x</span><span class="token operator">/</span>logs<span class="token punctuation">:</span><span class="token operator">/</span>var<span class="token regex">/log/ngin</span><span class="token operator">x</span> nginxdocker run -d -p 80:80 --name nginx-web --restart=always -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx
docker update <span class="token operator">--</span>restart<span class="token operator">=</span>always nginx<span class="token operator">-</span>webdocker update <span class="token operator">--</span>restart<span class="token operator">=</span>always nginx<span class="token operator">-</span>webdocker update --restart=always nginx-web
原文链接:https://blog.csdn.net/zhongguootngxu/article/details/117629480
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END