Dockerfile 命令

Dockerfile 是一個用來構建鏡像的文本文件,文本內容包含了一條條構建鏡像所需的指令和說明。html

一、FROM 指定基礎鏡像構建nginx

​ FROM 鏡像docker

​ 二、COPY 複製命令。從上下文目錄中複製文件或者目錄到容器裏指定路徑。shell

​ 寫法:bash

​ COPY 源路徑,目標路徑app

​ COPY ["源路徑","目標路徑"]ui

三、RUN運行指令。構建的時候運行的指令rest

​ 主要在於鏡像構建的時候運行,運行build命令的時候code

​ 後面接的命令就是shell輸入的命令htm

​ 寫法

​ RUN shell命令 參數1 參數2

​ RUN ["shell命令 ","參數1"," 參數2"]

​ 例如:

​ RUN ["echo",">"," /usr/share/index.html"]

​ 四、CMD運行指令。運行容器時候運行的指令

​ 主要在於鏡像運行容器的時候生成,運行run的時候運行

​ 寫法

​ CMD <shell 命令>
​ CMD ["<可執行文件或命令>","<param1>","<param2>",...]

​ 例如:

​ CMD ["dotnet","rmcore.dll"]

​ 缺點:在run 命令後面能夠進行覆蓋

​ docker run -d -P rmcore dotnet rmcore.dll 進行覆蓋掉

​ 五、ENTRYPOINT運行指令。運行容器時候運行的指令(不會被覆蓋)

​ 寫法

​ ENTRYPOINT ["<executeable>","<param1>","<param2>",...]

​ 能夠和CMD動態結合,設置動態的配置參數

​ 例如

​ ENTRYPOINT ["nginx", "-c"] 定參

​ CMD ["/etc/nginx/nginx.conf"]變參

​ 六、EXPOSE暴露端口指令

​ 僅僅聲明端口,就是指定鏡像暴露的端口

​ 在run 的時候,經過docker run -p 會自動隨機映射到EXPOSE端口

​ 寫法

​ EXPOSE 端口

​ EXPOSE 端口

​ 例如

​ EXPOSE 5000

​ EXPOSE 5001

​ 七、WORKDIR工做目錄指令

​ 用於應用在容器內的工做目錄,就比如:ruanmou目錄

​ 寫法

​ WORKDIR <工做目錄路徑>

​ 例如

​ WORKDIR /rmcore

​ 或者

​ WORKDIR /nginx

 

8 netcore鏡像構造

 

FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY docker/docker.csproj docker/
RUN dotnet restore docker/docker.csproj
COPY . .
WORKDIR /src/docker
RUN dotnet build docker.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish docker.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "docker.dll"]

  

 

官方文檔介紹:https://docs.docker.com/engine/reference/builder/

相關文章
相關標籤/搜索