使用docker安裝nginx


一、獲取nginx鏡像

1.使用docker search nginx命令獲取nginx鏡像列表

2.使用docker pull nginx命令拉取nginx鏡像到本地,此處我們獲取排名第一的是官方最新鏡像,其它版本可以去DockerHub查詢

3.使用docker images nginx命令,查看我們拉取到本地的nginx鏡像IMAGE ID

二、創建nginx容器

首先測試下nginx鏡像是否可用,使用docker run -d --name mynginx -p 80:80 0839創建並啟動nginx容器

  • -d 指定容器以守護進程方式在后台運行
  • --name 指定容器名稱,此處我指定的是mynginx
  • -p 指定主機與容器內部的端口號映射關系,格式 -p
  • [宿主機端口號]:[容器內部端口],此處我使用了主機80端口,映射容器80端口
  • 0839 是nginx的鏡像IMAGE ID前4位

命令執行后返回了容器ID,b3bc6....,此時我們已經成功創建了nginx容器,

使用docker ps命令,可以查看到正在運行的nginx容器,映射端口為80

在瀏覽器訪問CentOS主機,會看到nginx歡迎頁,如果你是雲服務器,請記得開放對應的外網端口!!!!

到這里我們已經完成了nginx容器的搭建,但是此時還有個問題,我們如何修改nginx的配置文件?

如何修改nginx的配置文件

這里有兩種方式解決這個問題:

方式一:每次都進入到nginx容器內部修改

每次都進入到nginx容器內部修改。適合改動少,簡單使用的情況

1.執行·docker exec -it ef /bin/bash·進入到nginx容器內部,

  • exec 命令代表附着到運行着的容器內部
  • -it 是 -i 與 -t兩個參數合並寫法,-i -t 標志着為我們指定的容器創建了TTY並捕捉了STDIN
  • ef 是我們要進入的容器Id
  • /bin/bash 指定了執行命令的shell

2.進入到nginx容器內部后,我們可以cd /etc/nginx,可以看到相關的nginx配置文件都在/etc/nginx目錄下

而nginx容器內的默認首頁html文件目錄/usr/share/nginx/html

日志文件位於/var/log/nginx

3.執行exit命令我們可以從容器內部退出

方式二:將nginx容器內部配置文件掛載到主機

將nginx容器內部配置文件掛載到主機,之后就可以在主機對應目錄修改即可。適合頻繁修改,復雜使用的情況

1.在主機/mnt目錄下執行 mkdir -p ./nginx/{conf,html,logs}創建掛載目錄

2.將容器內的nginx.confdefault.conf文件分別拷貝到主機/mnt/nginx/mnt/nginx/conf下,分別執行

docker cp ef:/etc/nginx/nginx.conf ./        
dokcer cp ef:/etc/nginx/conf.d/default.conf ./conf/

cp 命令代表復制
ef是我們nginx容器的ID,/etc/nginx/nginx.conf 是容器內部nginx.conf 路徑

此時我們的目錄結構是這樣的,這就是我們等會兒要與nginx容器掛載的目錄

3.執行docker stop b3命令停止剛剛創建的nginx容器,b3是容器Id,然后執行docker rm b3移除容器,

4.執行docker run -d --name mynginx -p 80:80 -v /mnt/nginx/nginx.conf:/etc/nginx/nginx.conf -v /mnt/nginx/logs:/var/log/nginx -v /mnt/nginx/html:/usr/share/nginx/html -v /mnt/nginx/conf:/etc/nginx/conf.d --privileged=true 0839命令,重新創建nginx容器

-v 掛載目錄,格式 -v: 表示將主機目錄與容器目錄之間進行共享,
--privileged=true 容器內部對掛載的目錄擁有讀寫等特權

5.這時候,會出現403,不要驚慌。我們的主機掛載 /mnt/nginx/html目錄還為空

這時我們在容器的掛載 /mnt/nginx/html目錄下創建index.html,內容隨便寫上hello docker nginx,再次訪問主機IP

到這里就大功告成了!
需要注意的:我們在掛載目錄的操作,都實際會映射到容器內部,寫配置文件的時候一定要注意路徑問題!!


免責聲明!

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



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