說明:
在有網絡的環境上制作Nginx的鏡像包,導出並上傳至無網絡的環境上,啟動Nginx即可
1.搜索nginx鏡像包
docker search nginx
2.拉取nginx鏡像
說明:
如果:后不寫版本號,則默認拉取最新的
docker pull nginx
查看鏡像
docker images
3.創建容器並啟動nginx
docker run -d -p 8080:80 --name nginx_docker nginx:latest
說明:
-d: 后台運行容器
-p :指定容器暴露的端口,映射宿主機端口號和容器端口號
--name:指定容器名字,后續可以通過名字進行容器管理
4.測試
瀏覽器中輸入你的ip地址 + 端口號,如下圖所示:(成功狀態)
5.創建宿主機配置文件(用於后續掛載nginx配置文件)
cd /usr/local/ mkdir nginx cd nginx/ mkdir data logs conf conf.d ll
說明:
data:靜態資源,一般前端頁面
logs:nginx日志
conf:nginx配置,一般配置緩存、限流在這個里面
conf.d: nginx配置,代理、轉發、負載、集群
5.1 編輯data文件夾下的index.html
cd /usr/local/nginx/data
vim index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>成功訪問nginx</title> </head> <body> <h1>這是用docker啟動的</h1> </body> </html>
5.2 編輯conf文件夾下的nginx.conf
cd /usr/local/nginx/conf
vim nginx.conf
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
5.3 編輯conf.d文件夾下的host.conf
cd /usr/local/nginx/conf.d
vim host.conf
# 后端轉發 server { listen 9264; server_name 192.168.94.110; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://192.168.94.110:9264/; } } # 前端轉發 server{ listen 8081; server_name 192.168.94.110; location / { root /usr/share/nginx/html; } }
6.創建新的容器並掛載宿主機配置文件啟動nginx(開一個相同的服務,端口號不同)
docker run -d -p 8081:80 --name nginx_docker_2 --restart=always --privileged=true -v /usr/local/nginx/data:/usr/share/nginx/html nginx:latest
說明:
-d: 后台運行容器
-p :指定容器暴露的端口,映射宿主機端口號和容器端口號
--name:指定容器名字,后續可以通過名字進行容器管理
--restart=always:使容器自動啟動
--privileged=true:開啟特權模式(如遇到權限問題錯誤,可加此參數)
-v:掛載宿主機目錄和 docker容器中的目錄,前面是宿主機目錄,后面是容器內部目錄
7.測試(掛載宿主機配置文件)
瀏覽器中輸入你的ip地址 + 端口號,如下圖所示:(成功狀態)
8.停止並刪除容器
docker rm -f f86c8cc956e3
9.導出鏡像
docker save -o nginx.tar nginx:latest
10.將鏡像包nginx.tar上傳至無網絡的環境上,執行
docker load -i nginx.tar
查看鏡像是否導入進來
docker images
11.直接啟動nginx
docker run -d -p 8081:80 --name nginx --restart=always --privileged=true nginx:latest
說明:
-d: 后台運行容器
-p :指定容器暴露的端口,映射宿主機端口號和容器端口號
--name:指定容器名字,后續可以通過名字進行容器管理
--restart=always:使容器自動啟動
--privileged=true:開啟特權模式(如遇到權限問題錯誤,可加此參數)
瀏覽器中輸入你的ip地址 + 端口號,如下圖所示:(成功狀態)