1. 程式人生 > 實用技巧 >Docker 部署 Nginx

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 portcontainer 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就行.

docker內的nginx重啟

docker restart nginx