阿里雲CentOS7.3服務器通過Docker安裝Nginx


前言

小編環境:

  1. 阿里雲CentOS7.3服務器
  2. docker

下面分享一次小編在自己的阿里雲CentOS7.3服務器上使用Docker來安裝Nginx的一次全過程

溫馨小提示:
如果只是希望單純使用docker安裝nginx能跑靜態資源項目不管一些配置文件所放位置的話,可直接執行如下2條命令即可
1. docker pull nginx # 拉取nginx鏡像
2. docker run -d -p 80:80 --name nginx  nginx #運行nginx
然后瀏覽器輸入訪問地址測試:         http://ip地址:端口/

在這里插入圖片描述

一、拉取nginx鏡像

docker pull nginx

二、創建宿主機目錄nginx -> 用於掛載下面在容器中找到的配置文件

溫馨小提示:
-p:保證目錄名稱存在,如果不存在則重新創建一個
html: 映射容器中的靜態資源目錄
logs: 日志文件目錄
conf: 配置文件目錄
conf.d: 配置文件子目錄

mkdir -p /IT_zhengqing/soft/nginx/html /IT_zhengqing/soft/nginx/logs /IT_zhengqing/soft/nginx/conf /IT_zhengqing/soft/nginx/conf/conf.d

三、找到nginx鏡像容器里面的配置文件、日志文件等位置

-> 目的:運行啟動nginx時,將宿主機中的配置文件映射到容器中的配置文件(將nginx容器中的配置文件掛載到宿主機上)
-> 即nginx啟動后,使用的是宿主機中的配置

(1)以交互模式啟動nginx容器,並在容器內執行/bin/bash命令 -> 進入到nginx容器中

docker run -it --name nginx -p 81:80 nginx:latest /bin/bash

(2)找到容器中需要的配置文件位置

①nginx.conf配置文件路徑: /etc/nginx/nginx.conf

cd /etc/nginx/
ls -l 

②default.conf配置文件路徑: /etc/nginx/conf.d/default.conf

conf.d:為子目錄,容器走完nginx.conf配置文件后,會走conf.d子目錄下的配置文件

cd /etc/nginx/conf.d/ 

③存放靜態資源文件夾html路徑: /usr/share/nginx/html

cd /usr/share/nginx/ 

④日志文件路徑: /var/log/nginx

cd /var/log/nginx

(3)最后按Ctrl+P+Q快捷鍵或輸入exit命令退出容器終端~

 exit

四、拷貝容器內nginx默認配置文件到宿主機中,容器名或容器ID:執行docker ps命令查看

docker cp fb5de6e5638d:/etc/nginx/nginx.conf /IT_zhengqing/soft/nginx/conf
docker cp fb5de6e5638d:/etc/nginx/conf.d/default.conf /IT_zhengqing/soft/nginx/conf/conf.d

溫馨小提示:
從容器中拷貝文件到宿主機中: docker cp 容器名或容器ID:容器中要拷貝的文件所在路徑 要拷貝到宿主機中的對應路徑
從宿主機中拷貝文件到容器中: docker cp 宿主機中要拷貝的文件路徑 容器名或容器ID:要拷貝到容器中的對應路徑

五、部署nginx

溫馨小提示:
上面在容器中找配置文件以交互模式啟動的nginx容器如果端口和下面要使用的端口沖突的話,需要停止相應進程、容器運行哦!!!
檢查端口被哪個進程占用: netstat -lnp|grep 端口號
殺掉進程【ex:強制殺掉編號為10001的進程】:kill -9 10001
停止以啟動的容器: docker stop nginx
刪除容器: docker rm -f nginx
然后執行docker ps查看運行的容器,如果成功刪除端口會沖突的容器,再部署,走下面的流程!!!

執行如下命令部署 -> 啟動運行nginx容器

docker run -d -p 81:80 --name nginx -v /IT_zhengqing/soft/nginx/html:/usr/share/nginx/html -v /IT_zhengqing/soft/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /IT_zhengqing/soft/nginx/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /IT_zhengqing/soft/nginx/logs:/var/log/nginx nginx

-d: 以后台模式啟動容器 -> 后台運行該容器
-p 81:80: 將容器的 80 端口映射到宿主機的 81 端口 注:部分服務器需要手動去放行端口哦
--name nginx: 將容器命名為nginx
-v /IT_zhengqing/soft/nginx/html:/usr/share/nginx/html: 將宿主機中創建的 html 目錄掛載到容器的 /usr/share/nginx/html 目錄
注意一定要找到容器中配置文件所在的准確路徑,否則這里運行會報錯!

六、測試訪問

(1)到宿主機 /IT_zhengqing/soft/nginx/html 目錄下創建 index.html 靜態資源

cd /IT_zhengqing/soft/nginx/html

touch index.html # 創建文件

echo '<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>nginx容器運行中...</title>
</head>
<body>
    <h1> Hello World </h1>
    <p> If I were you. </p>
</body>
</html>' > index.html          # echo:如果沒有這個文件則創建。如果有這個文件,那么新內容將會代替原來的內容。

這里也可以使用vi編輯器創建文件,命令如下:

vi index.html  # 然后按i插入 , 之后輸入內容,按Esc退出編輯模式,切換到英文輸入法按shift + : 再輸入 wq 退出並保存
最后通過 cat index.html 命令查看文件內容

在這里插入圖片描述

小編這里說下使用vi命令和echo命令去創建文件寫入內容的區別:
在部署nginx運行時如果沒有設置只讀的情況下,
(只讀是掛載目錄時后面加上:ro 如:-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro)

echo 命令 -> 修改內容,宿主機和容器配置文件都會改變;
vi 命令 -> 修改內容,宿主機和容器配置互不影響。

(2)瀏覽器輸入 http://ip:端口/ 訪問測試

在這里插入圖片描述


免責聲明!

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



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