前置條件:
- Nginx可能會因為Centos防火墻問題導(dǎo)致測試的時候不通,為避免這方面的原因,大家可以先將防火墻關(guān)閉后再進(jìn)行下列操作
# 查看防火墻當(dāng)前狀態(tài)
systemctl status firewalld.service
# 開啟
systemctl start firewalld.service
# 重啟
systemctl restart firewalld.service
# 關(guān)閉
systemctl stop firewalld.service
1. 安裝docker
# 配置yum源(阿里yum源, 已更換了yum為國內(nèi)源或yum下載速度沒有問題可忽略此步驟)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 確保yum源為最新的
yum update
# 安裝依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 查看所有倉庫中所有Docker版本
yum list docker-ce --showduplicates | sort -r
# 安裝Docker最新版
yum -y install docker-ce
# 啟動Docker
systemctl start docker
設(shè)置開機(jī)自動啟動(根據(jù)需要設(shè)置)
systemctl enable docker
2. 使用Docker安裝Nginx
# 獲取最新版本nginx鏡像
docker pull nginx:latest
# 在宿主機(jī)上創(chuàng)建以下3個目錄用于nginx的映射
# ~/nginx/conf.d nginx配置文件目錄
# ~/nginx/logs nginx運行日志目錄
# ~/nginx/wwwroot html靜態(tài)頁目錄(存放項目前端html\js\css文檔)
# ~/nginx/ssl 用于存放證書
mkdir -p ~/nginx/conf.d ~/nginx/logs ~/nginx/wwwroot ~/nginx/ssl
創(chuàng)建nginx容器
docker run --name nginx-stp -p 8081:80 -p 443:443 -v ~/nginx/conf.d:/etc/nginx/conf.d -v ~/nginx/logs:/var/log/nginx -v ~/nginx/wwwroot:/usr/share/nginx/html -v ~/nginx/ssl:/etc/nginx/ssl -v /etc/localtime:/etc/localtime -d nginx
# --name 容器名稱
# -p 宿主機(jī)與容器內(nèi)部端口映射(左邊的是宿主機(jī)端口,右邊的是容器內(nèi)部nginx端口),443端口可以根據(jù)實際選擇是否進(jìn)行映射
# -v 映射目錄(左邊的是宿主機(jī)目錄,右邊的是容器內(nèi)部目錄)
# -d 后臺運行
# 最后一個參數(shù):使用nginx鏡像創(chuàng)建容器
添加nginx配置文件 ~/nginx/conf.d/test-project.conf
server {
server_name test-project.com;
listen 80;
location / {
root /usr/share/nginx/html;
try_files $uri /index.html;
index index.html index.htm;
}
}
在宿主機(jī)新增配置文件后,需要重新載入配置或者重啟nginx才能生效
- 重新載入docker中的nginx配置:
docker exec nginx-stp nginx -s reload(nginx-stp是容器的名稱也可以使用容器ID代替)- 重新啟動docker中的nginx:
docker restart nginx-stp
操作到此處時,Nginx就已經(jīng)配置好了,我們可以在 ~/nginx/wwwroot 目錄下寫一個index.html文件測試一下(后面項目中的前端代碼文件就是放在這里),看看是否能夠訪問,如果訪問正常則使用docker安裝nginx大功告成
創(chuàng)建index.html 樣例文件:
vi ~/nginx/wwwroot/index.html
填寫內(nèi)容保存并退出:
<html>
<head>
<title>nginx test title</title>
</head>
<body>
<h1>hello docker nginx</h1>
</body>
</html>
然后在瀏覽器輸入nginx所在宿主機(jī)IP + 端口: http://xxx.xxx.xxx.xxx:8081 ,顯示內(nèi)容如下則恭喜你成功了

訪問成功
docker其它常用操作命令
查看所有容器(不加參數(shù)-a 則只查看所有運行中的容器)
docker ps -a
重啟nginx容器(這里是使用容器名稱進(jìn)行重啟操作,也可通過查詢?nèi)萜鱅D,使用id進(jìn)行重啟)
docker restart nginx-stp
刪除容器(非正常操作,操作前請注意容器內(nèi)數(shù)據(jù)的備份)
docker stop nginx-stp
docker rm nginx-stp