docker 安裝nginx,設置目錄掛載

這裏採用Dockerfile  來構建自己的nginx 鏡像

mkdir mynginx 新建一個目錄

touch Dockerfile新建一個Dockerfile

vim Dockerfile 並加入如下命令

FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

這個 Dockerfile 很簡單,一共就兩行涉及到了兩條指令:FROM 和 RUN,FROM 表示獲取指定基礎鏡像,RUN 執行命令,在執行的過程中重寫了 nginx 的默認頁面信息,將信息替換爲:Hello, Docker!。

在 Dockerfile 文件所在目錄執行:

docker build -t nginx:v1 .

命令最後有一個. 表示當前目錄,標籤爲v1

docker images 

查看所有鏡像,v1的這個就是你的

接下來使用 docker run 命令來啓動容器

docker run  --name docker_nginx_v1   -d -p 80:80 nginx:v1

這條命令會用 nginx 鏡像啓動一個容器,命名爲docker_nginx_v1,並且映射了 80 端口,這樣我們可以用瀏覽器去訪問這個 nginx 服務器:http://192.168.0.54/,頁面返回信息:

 

修改容器內容

容器啓動後,需要對容器內的文件進行進一步的完善,可以使用docker exec -it xx bash命令再次進行修改,以上面的示例爲基礎,修改 nginx 啓動頁面內容:

docker exec -it docker_nginx_v1   bash
root@3729b97e8226:/# echo '<h1>Hello, Docker neo!</h1>' > /usr/share/nginx/html/index.html
root@3729b97e8226:/# exit
exit

以交互式終端方式進入 docker_nginx_v1 容器,並執行了 bash 命令,也就是獲得一個可操作的 Shell。然後,我們用<h1>Hello, Docker neo!</h1>覆蓋了 /usr/share/nginx/html/index.html 的內容。

再次刷新瀏覽器,會發現內容被改變。

修改了容器的文件,也就是改動了容器的存儲層,可以通過 docker diff 命令看到具體的改動。

 

設置文件掛載目錄

docker 容器不支持vim 編輯,修改起來比較麻煩,可以設置文件掛載目錄,把容器的目錄掛載到宿主機上,這樣直接修改宿主機的就行了

例如:

run --name mynginx -p 80:80 -v /opt/nginx/data/html:/usr/share/nginx/html -d nginx:v1

 

其中 -v /opt/nginx/data/html:/usr/share/nginx/html

就是把容器的/usr/share/nginx/html 目錄掛載到 /opt/nginx/data/html

注意需要先在宿主機上創建這個目錄,然後把容器上的該目錄下的文件複製過來

可以用docker cp docker_nginx_v1:/usr/share/nginx/html  /opt/nginx/data/html

docker ps  查看運行的鏡像

docker stop 2af1 停掉鏡像

docker run --name mynginx -p 80:80 -v /opt/nginx/data/html:/usr/share/nginx/html -d nginx:v1

修改宿主機的html頁面刷新網頁會發現也變了

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章