網頁

2023/6/13

Docker 安裝Nginx

在Docker container安裝並運行Nginx的方式如下。


範例環境:

  • Docker version 20.10.17


下載Nginx image

在命令列輸入docker pull nginx下載Nginx,沒指名tag則預設為latest

~$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
759700526b78: Pull complete
4fabad4a1317: Pull complete
1150b893b52b: Pull complete
e75fa5822000: Pull complete
1595b4d83afa: Pull complete
1810e754f450: Pull complete
Digest: sha256:06ee09daa702ca22b4a3eb530416f3d1cd5a8c8b076ffe8671a4003523600cff
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

在終端機輸入docker images檢視下載的nginx image。

~$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        latest    7d3c40f240e1   49 minutes ago   143MB


運行Nginx

輸入docker run --name nginx -p 80:80 -d nginx在docker container運行Nginx。參數說明如下。

  • -p 80:80 - 把container的80 port對映(mapping)到主機的80 port。
~$ docker run --name nginx -p 80:80 -d nginx
a6c09e2380b07cd164dfd3d23d53da8c1b70e3469701574b7744205429bd2ac5

輸入docker ps檢視運行中的nginx container。

~$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
a6c09e2380b0   nginx     "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx


測試一

開啟瀏覽器,在網址列輸入http://<HOST>:80出現以下畫面代表成功連入Nginx。<HOST>為docker所在主機的IP位址。




測試二

在本機的當前目錄新增一個index.html檔,內容如下。

index.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Docker Nginx</title>
</head>
<body>
  <h1>Hello World</h1>
</body>
</html>

執行docker cp index.html nginx:/usr/share/nginx/html/index.html把本機(docker host)的index.html複製到nginx container的/usr/share/nginx/html/index.html覆蓋nginx container的預設首頁。

$ docker cp index.html nginx:/usr/share/nginx/html/index.html
Successfully copied 2.05kB to nginx:/usr/share/nginx/html/index.html

開啟瀏覽器,在網址列輸入http://<HOST>:80可看到修改後的首頁畫面。




沒有留言:

張貼留言