Docker 之3 AspNet發佈到Docker

準備aspnet運行鏡像

bash docker pull mcr.microsoft.com/dotnet/core/aspnet:2.2linux

製做aspnet 2.2的程序,發佈,確保程序本地運行經過

#測試本地dll, 進入發佈目錄,運行
dotnet myapp.dll

製做Dockerfile

在myapp.dll所在的目錄,新建文本文件,文件名爲Dockerfile,內容以下:docker

#基於microsoft/dotnet:1.0.0-core 來構建咱們的鏡像
FROM [mcr.microsoft.com/dotnet/core/aspnet:2.2](http://mcr.microsoft.com/dotnet/core/aspnet:2.2)

#拷貝項目publish文件夾中的全部文件到 docker容器中的publish文件夾中
COPY . /publish

#設置工做目錄爲 `/publish` 文件夾,即容器啓動默認的文件夾
WORKDIR /publish

#設置Docker容器對外暴露80端口
EXPOSE 80

#使用`dotnet myapp.dll`來運行應用程序
CMD \["dotnet", "myapp.dll"\]

dotnet命令啓動的程序,在windows和linux上的端口可能會不同, 須要確保 EXPOSE 的是真實的服務端口windows

構建鏡像

在myapp.dll所在的目錄,執行命令:瀏覽器

docker build -t myapp:1.0

-t 參數爲鏡像定義標籤bash

運行鏡像,生成容器

docker --name myapp -p 80:80 -it myapp:1.0

此過程可能會報錯:docker端口映射或啓動容器時報錯Error response from daemon: driver failed programming external connectivity on endpoint xxx
此時請重啓docker後,重啓生成的容器 docker start myappapp

在瀏覽器中輸入 localhost , 測試docker中的WEB服務

進入容器

有時候須要查看日誌,或者進行其它操做, docker從1.3版本開始提供了進入容器的命令:測試

$ sudo docker exec -it myapp /bin/bash
相關文章
相關標籤/搜索