Docker 部署 Nginx
1.查詢 Docker Hub 上的 nginx 映象
[root@localhost ~]# docker search nginx
2.拉取官方的Nginx映象
[root@localhost ~]# docker pull nginx
3.在本地映象列表裡查到 REPOSITORY 為 nginx 的映象
[root@localhost ~]# docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/nginx latest f949e7d76d63 5 weeks ago 126 MB [root@localhost ~]#
4.以下命令使用 NGINX 預設的配置來啟動一個 Nginx 容器例項:
docker run --name nginx-test1 -p 8081:80 -d nginx
nginx-test1
:
容器名稱-d:
設定容器在後臺一直執行-p:
埠進行對映,將本地 8081 埠對映到容器內部的 80 埠(host port:container port)
執行以上命令會生成一串字串,類似13afb35cbc98ebd8ad451f0fda9bec24e814916c1e929b89363e7ca92c1746eb,這個表示容器的 ID,一般可作為日誌的檔名。
我們可以使用docker ps
docker ps
PORTS 部分表示埠對映,本地的 8081埠對映到容器內部的 80埠。
在瀏覽器中開啟http://機器IP:8081/,效果如下:
例項2:nginx 服務部署,對映本地目錄到nginx容器
1.建立本地目錄,用於存放Nginx的相關檔案資訊.
# mkdir -p /usr/local/nginx/www /usr/local/nginx/logs /usr/local/nginx/conf
其中:
www: 目錄將對映為 nginx 容器配置的虛擬目錄。
logs: 目錄將對映為 nginx 容器的日誌目錄。
conf: 目錄裡的配置檔案將對映為 nginx 容器的配置檔案。
2.拷貝容器內 Nginx 預設配置檔案到本地當前目錄下的 conf 目錄,容器ID可以檢視 docker ps 命令輸入中的第一列:
[root@localhost home]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 358354f206fd nginx "nginx -g 'daemon ..." 29 minutes ago Up 29 minutes 0.0.0.0:8080->80/tcp nginx-test [root@localhost home]# [root@localhost home]# docker cp 358354f206fd:/etc/nginx/nginx.conf /usr/local/nginx/conf/
3.部署命令
docker run -d -p 8081:80 --name nginx-test-web -v /usr/local/nginx/www:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/logs:/var/log/nginx nginx
命令說明:
--rm:容器終止執行後,自動刪除容器檔案。
-p 8081:80: 將容器的 80 埠對映到主機的 8082 埠.
--name nginx-test-web:將容器命名為 nginx-test-web
-v /usr/local/nginx/www:/usr/share/nginx/html:將我們自己建立的 www 目錄掛載到容器的 /usr/share/nginx/html。
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:將我們自己建立的 nginx.conf 掛載到容器的 /etc/nginx/nginx.conf。
-v /usr/local/nginx/logs:/var/log/nginx:將我們自己建立的 logs 掛載到容器的 /var/log/nginx。
4.啟動以上命令後進入 /usr/local/nginx/www 目錄:
[root@localhost ~]# cd /usr/local/nginx/www/ [root@localhost www]# vim index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Nginx test !!!</title> </head> <body> <h1>我的第一個標題</h1> <p>我的第一個段落。</p> </body> </html>
在瀏覽器裡面輸入http://172.17.0.1:8081/,輸出結果如下,如果在訪問時出現403錯誤,應該是index.html檔案許可權不足,給成644就行.