首先下載nginx鏡像
在xshell中連接centos
輸入如下命令
docker pull nginx:1.17-alpine
其中:冒號是必須的 表示是一個標(biāo)簽
后面是官方的nginx鏡像版本(基于alpine的)
接下來使用docker images查看下載的鏡像
如下圖所示
可以看見我們下載的nginx鏡像只有20.5M 非常小
我們可以在這個鏡像里面創(chuàng)建一個容器 容器創(chuàng)建好以后相當(dāng)于我們已經(jīng)部署好了nginx
這是當(dāng)下比較流行的做法
接下來對鏡像進(jìn)行啟動一個容器 (啟動一個容器 因為這個鏡像僅僅是類似于光盤 買回來以后需要啟動我們的虛擬機(jī))虛擬機(jī)啟動方式如下 docker run 表示啟動一個容器(類似于vmvare創(chuàng)建一個虛擬機(jī)的過程)
執(zhí)行如下命令 啟動容器
docker run --name ngx -d -p 80:80
nginx:1.17-alpine
其中 docker run 表示啟動一個容器 --name ngx 表示指定容器名字為ngx
-d表示后臺運行 -p表示映射端口 nginx默認(rèn)端口為80
在外部如果希望通過windows來訪問 使用虛擬機(jī)ip加上80端口即可訪問 不需要訪問容器的ip
接下來執(zhí)行docker ps查看下當(dāng)前運行的所有容器
容器啟動在這里好比虛擬機(jī)啟動一樣 我們可以通過一定的方式對其進(jìn)行操作
可以使用如下命令
docker exec
exec代表使用docker運行容器里面的某一個命令 這個命令可以執(zhí)行bash alpine這個系統(tǒng)中默認(rèn)沒有bash
所以這里可以這樣寫
docker exec -it ngx bash
其中-it表示已交互式方式執(zhí)行
運行結(jié)果如下
提示找不到bash
所以我們這里使用原始的sh方式(可以搞定大部分情況 后面也可以安裝bash)
docker exec -it ngx sh(回車 好比進(jìn)入了容器的終端 如下)
ls查看下
接下來執(zhí)行nginx -v
nginx -t 查看配置文件是否ok 以及位置
可以看見docker在安裝nginx時將配置文件指定在/etc/nginx/目錄下了
接下來進(jìn)入這個目錄看下配置文件
可以看見里面有很多配置文件 最基本的就是nginx.conf文件
我們需要在外部映射一個文件(就是映射這個配置文件) 我們就可以在物理機(jī)上去修改配置文件 docker里面的配置文件也會做相應(yīng)的修改
接下來簡單看下nginx.conf文件
可以發(fā)下如下內(nèi)容
這里暫時對配置優(yōu)化跳過 主要看下基本的主要配置 針對這些配置做些實戰(zhàn)的業(yè)務(wù)功能
其中我們會重點學(xué)習(xí)下http模塊
在nginx里面 以模塊的方式存在各種各樣的功能 可以使用c語言來自己編寫一些模塊
模塊里面有一些基本的指令和內(nèi)置變量(include用來包含文件)
nginx里面有一個server配置節(jié)點
接下來我們退出vi編輯器
來到conf.d文件夾
ls查看
可以發(fā)現(xiàn)一個default.conf文件
vi default.conf 查看下
如下
出現(xiàn)了server配置節(jié)點
后面我們會逐一詳細(xì)講解里面的意思以及如何配置
里面有個最基本的location配置節(jié)點
里面有兩個節(jié)點 root表示根目錄位置(靜態(tài)資源網(wǎng)站) index表示起始頁
接下來我們退出vi編輯器
cd進(jìn)入到root配置節(jié)后面的目錄
ls查看下
可以發(fā)現(xiàn)有個默認(rèn)的首頁
接下來把配置文件拷貝到物理機(jī)上
(后面需要在物理機(jī)上進(jìn)行修改 然后把它映射到容器里面 然后重啟容器 配置文件的修改就生效了)
接下來ctrl+d退出 來到物理機(jī)
出現(xiàn)如上表示我們進(jìn)入到了物理機(jī)
首先創(chuàng)建個文件加 myngx
使用docker cp 表示從容器里面(ngx)拷貝一個文件
把容器里面的(ngx)容器里面的 /etc/nginx/nginx.conf 文件 拷貝到 myngx文件加下
docker cp ngx:/etc/nginx/nginx.conf myngx
可以發(fā)現(xiàn)出現(xiàn)了容器里面的conf配置文件
下節(jié)將會對其進(jìn)行修改并逐步了解里面的核心模塊以及自定義增加的嵌入式腳本開發(fā)