濤。

t.

Docker离线部署Nginx

Docker离线部署Nginx

说明:

在有网络的环境上制作Nginx的镜像包,导出并上传至无网络的环境上,启动Nginx即可

1.搜索nginx镜像包

docker search nginx

 

2.拉取nginx镜像

说明:

如果:后不写版本号,则默认拉取最新的

docker pull nginx

查看镜像

docker images

 

3.创建容器并启动nginx

docker run -d -p 8080:80 --name nginx_docker nginx:latest

说明:

-d: 后台运行容器

-p :指定容器暴露的端口,映射宿主机端口号和容器端口号

--name:指定容器名字,后续可以通过名字进行容器管理

4.测试

浏览器中输入你的ip地址 + 端口号,如下图所示:(成功状态)

5.创建宿主机配置文件(用于后续挂载nginx配置文件)

 cd /usr/local/
 mkdir nginx
 cd nginx/
 mkdir data logs conf conf.d
 ll

说明:

data:静态资源,一般前端页面

logs:nginx日志

conf:nginx配置,一般配置缓存、限流在这个里面

conf.d: nginx配置,代理、转发、负载、集群

5.1 编辑data文件夹下的index.html

 cd /usr/local/nginx/data
 vim index.html
 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title>成功访问nginx</title>
     </head>
     <body>
         <h1>这是用docker启动的</h1>
     </body>
 </html>

5.2 编辑conf文件夹下的nginx.conf

 cd /usr/local/nginx/conf
 vim nginx.conf
 user  nginx;
 worker_processes  1;
 ​
 error_log  /var/log/nginx/error.log warn;
 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;
     #tcp_nopush     on;
 ​
     keepalive_timeout  65;
 ​
     #gzip  on;
 ​
     include /etc/nginx/conf.d/*.conf;
 }

5.3 编辑conf.d文件夹下的host.conf

 cd /usr/local/nginx/conf.d
 vim host.conf
 # 后端转发
 server {
     listen 9264;
     server_name  192.168.94.110;
 ​
     location / {
         proxy_set_header  Host  $http_host;
         proxy_set_header  X-Real-IP  $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_pass  http://192.168.94.110:9264/;
    }
    
 }
 ​
 # 前端转发
 server{
         listen 8081;
         server_name 192.168.94.110;
         location / {
                 root /usr/share/nginx/html;
         }
 }

6.创建新的容器并挂载宿主机配置文件启动nginx(开一个相同的服务,端口号不同)

docker run -d -p 8081:80 --name nginx_docker_2 --restart=always --privileged=true -v /usr/local/nginx/data:/usr/share/nginx/html nginx:latest

说明:

-d: 后台运行容器

-p :指定容器暴露的端口,映射宿主机端口号和容器端口号

--name:指定容器名字,后续可以通过名字进行容器管理

--restart=always:使容器自动启动

--privileged=true:开启特权模式(如遇到权限问题错误,可加此参数)

-v:挂载宿主机目录和 docker容器中的目录,前面是宿主机目录,后面是容器内部目录

7.测试(挂载宿主机配置文件)

浏览器中输入你的ip地址 + 端口号,如下图所示:(成功状态)

8.停止并删除容器

docker rm -f f86c8cc956e3

9.导出镜像

docker save -o nginx.tar nginx:latest

 

10.将镜像包nginx.tar上传至无网络的环境上,执行

docker load -i nginx.tar

查看镜像是否导入进来

docker images

 

11.直接启动nginx

docker run -d -p 8081:80 --name nginx --restart=always --privileged=true nginx:latest

说明:

-d: 后台运行容器

-p :指定容器暴露的端口,映射宿主机端口号和容器端口号

--name:指定容器名字,后续可以通过名字进行容器管理

--restart=always:使容器自动启动

--privileged=true:开启特权模式(如遇到权限问题错误,可加此参数)

12.测试

浏览器中输入你的ip地址 + 端口号,如下图所示:(成功状态)

 

 

 

 

 

posted on 2022-01-06 09:08  濤。  阅读(1729)  评论(1编辑  收藏  举报

导航