在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
可看到修改後的首頁畫面。
沒有留言:
張貼留言