docker下安裝nginx,啟動ngixn,修改nginx配置等--超詳細


1、獲取nginx版本

  docker中nginx版本信息:https://hub.docker.com/_/nginx?tab=tags&page=1&ordering=last_updated

  

 

 

2、拉取nginx

  docker pull nginx:1.16.1

  nginx后面的:1.16.1表示具體版本,如果不指定,則默認拉取最新的latest

  顯示如下圖,則表示安裝成功

  

 

 

 3、啟動nginx

  3.1查看nginx信息

    

 

 

   3.2 錯誤啟動示范:docker run --name nginx -d nginx -p 80:80

    執行結果如下:

    

 

 

     可以看出,docker重新拉區了最新的latest版本的nginx

     

 

      通過docker ps查看發現並沒有運行中的容器

    

    通過docker ps -a 查看發現已經創建的容器

    

 

 

     由上可見,如果直接-d nginx,會從倉庫中拉取最新版本的nginx鏡像,並創建容器,但這不是我們想要的,這時候我們需要把latest的nginx刪除掉,刪除前需要先把容器刪除,否則會提示以下內容

    

 

     (注:操作鏡像或者容器,可以只寫id的保證不重復的前幾位)

  3.3 刪除nginx鏡像和容器

    

 

     

 

   3.4 正確啟動nginx

    docker run --name nginx -p 80:80 -d dfcfd8e9a5d3

    

 

    參數說明: 

      docker run : 啟動容器

      --name nginx:指定容器啟動后名稱,注意是兩個-

      -p 80:80:將容器的80端口(冒號后面)映射到宿主機的80端口(冒號前面)上,容器相當於一個簡化版的服務器,所以需要映射才能被訪問

      -d dfcfd8e9a5d3: 指定后台啟動,並指定后台啟動的鏡像名稱(建議指定,也有教程說可以不指定的,沒有試驗)

  3.5 修改配置文件

    3.5.1 直接修改配置

      進入容器:docker exec -it 3a bash

      

 

       nginx路徑在/etc/nginx下

      

 

      編輯nginx.conf,提示 bash: vim: command not found ,因為nginx這個容器沒有安裝編輯器,所以先安裝 apt-get  update 之后 apt-get install vim

      編輯nginx.conf,退出容器,然后重啟系統,則可以查看結果。

      

 

     3.5.2 掛載文件

      在宿主機上新建文件夾 mkdir nginx,在文件夾下新建logs路徑,mkdir logs ,將事先准備好的nginx.conf復制到nginx路徑下,結果如下如所示:

      

 

       掛載文件

       docker run --name nginx2 -p 90:90 -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/docker/nginx/logs:/var/log/nginx -d dfcfd8e9a5d3

      參數說明:

        --name nginx2: 啟動容器的名稱,用於關閉或者啟動,docker stop nginx1/docker start nginx1

        -p 90:90 : 將容器的90端口映射到宿主機的90端口上

        -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf :將宿主機上的/mnt/docker/nginx/nginx.conf覆蓋容器里的/etc/nginx/nginx.conf,這樣宿主機上的nginx就會以本地的nginx為配置文件

        -v /mnt/docker/nginx/logs:/var/log/nginx :將容器的日志目錄/var/log/nginx修改為宿主機的/mnt/docker/nginx/logs,這樣日志就會往宿主機的/mnt/docker/nginx/logs下輸出access.log和error.log

  3.6 修改nginx訪問宿主機文件

    將文件放到/mnt/docker/test中,將nginx.conf修改root路徑為/mnt/docker/test,啟動容器

    docker run --name nginx2 -p 90:90 -v /mnt/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/docker/nginx/logs:/var/log/nginx -v /mnt/docker/test:/mnt/docker/test -d dfcfd8e9a5d3

    這樣就相當於將本地的文件映射到了容器里,nginx訪問容器上的路徑時就訪問到了宿主機上。

 4、配置proxy_pass

  先安裝必要的工具 

    apt-get update

    apt-get install -y curl telnet

  查看容器ip

  docker inspect 38914185adb1(容器id)

  

 

   由圖可以看出容器的ip是172.17.0.2,宿主機的ip是172.17.0.1,所以配置tomcatip的時候配置宿主機或者其他容器的ip即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM