前提:本地環境windows+git bash+docker
步驟1:拉取nginx鏡像
docker pull nginx
注:默認拉取最新版本,可通過docker images查看鏡像是否已拉取下來
步驟二:使用Dockerfile,構建自己的nginx鏡像
使用cmd,命令如下
md Dockerfile
使用bahs,命令如下:
touch Dockerfile
考慮到使用cmd沒有vim編輯器,所以中間我使用了git bash命令窗口,使用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 mynginx:V1 .
命令最后有一個. 表示當前目錄,標簽為V1
docker images 查看所有鏡像,v1的這個就是你的
步驟三:啟動容器
docker run --name mynginx_V1 -p 80:80 nginx:V1
name:自定義容器名稱,這里取名為myNginx;
-d:后台運行容器,並返回容器ID;
-p:指定端口映射,格式為:主機(宿主)端口:容器端口。
-v:目錄掛載,格式為:主機目錄:容器目錄
這條命令會用 nginx 鏡像啟動一個容器,命名為mynginx_V1,並且映射了 80 端口,這樣我們可以用瀏覽器去訪問這個 nginx 服務器:localhost,頁面將返回hello docker!信息。
步驟四:修改容器內容,這里提供兩種方法
①以交互式終端的方式直接編輯容器里的內容
比如,這里修改nginx啟動頁面的內容
以交互式終端方式進入 mynginx_V1 容器,並執行了 bash 命令,也就是獲得一個可操作的 Shell。然后,我們用<h1>Hello, Docker neo!</h1>覆蓋了 /usr/share/nginx/html/index.html 的內容。
此時刷新頁面時,將會看到最新的內容。
②設置文件掛載目錄
docker 容器不支持vim 編輯,修改起來比較麻煩,可以設置文件掛載目錄,把容器的目錄掛載到宿主機上,這樣直接修改宿主機的就行了
例如:
docker run --name mynginx_V1 -p 80:80 -v f:\dockerFile\mynginx_V1\opt\nginx\data\html:/usr/share/nginx/html nginx:V1
其中 -v f:\dockerFile\mynginx_V1\opt\nginx\data\html:/usr/share/nginx/html
就是把容器的/usr/share/nginx/html 目錄掛載到本機f:\dockerFile\mynginx_V1\opt\nginx\data\html目錄下
注意需要先在宿主機上創建這個目錄,然后把容器上的該目錄下的文件復制過來
可以用
docker cp mynginx_V1:/usr/share/nginx/html opt/nginx/data
復制完后,目錄內容如下:
docker ps 查看運行的鏡像
docker stop 容器名/id 停掉鏡像
修改宿主機的html頁面刷新網頁會發現也變了
此時修改宿主機上的首頁內容
再次刷新頁面時,頁面就變成最新的了
參考鏈接:https://blog.csdn.net/qq_36635434/java/article/details/106711434