1. 程式人生 > >Docker + .NET Core(三)-兩種釋出方式

Docker + .NET Core(三)-兩種釋出方式

原文: Docker + .NET Core(三)-兩種釋出方式


第一種,自己手寫dockerfile釋出,上傳至hubDocker

  1. 正常釋出到資料夾中,釋出檔案上傳至linux機器上。如 /www/app
  2. 將Dockerfile檔案也複製到同目錄 。/www/app
  3. 輸入 docker image build -t demo .,構建一個demo名字的映象。這個時候就會構建映象,輸入docker images可以檢視當剛剛生成的映象。也可以看到下面會用到的IMAGEID
  4. 輸入docker run --name=demo -d -p 8000:80 -v /www/app:/app demo
  5. 這時候訪問ip:8000就可以了,輸入docker ps
    可以看到正在執行的容器的資訊。
  6. 上傳映象到hubDocker,輸入docker login然後登入。
  7. 打標籤docker tag IMAGEID hanfan/demo:1.0 推送docker push hanfan/demo:1.0
  8. 其他人就可以docker pull hanfan/demo:1.0拉取執行映象了。
  9. 使用Nginx反向代理
  10. 搞定

第二種,使用VS2017或者VS2019(其他的沒試過)

  1. 專案點右鍵新增Docker支援,選擇Liunx,也會生成一個dockerfile檔案,這個檔案的坑更加專案自己去排坑
  2. 點選解決方案新增docker-compose專案
  3. 執行,這個時候會生成一個映象。輸入docker images可以檢視。
  4. 映象都生成好了,就上第一種一樣的操作了
  5. 搞定

寫一個自己的dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
COPY . .
RUN ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so 
RUN echo "deb http://mirrors.aliyun.com/debian wheezy main contrib non-free deb-src http://mirrors.aliyun.com/debian wheezy main contrib non-free deb http://mirrors.aliyun.com/debian wheezy-updates main contrib non-free deb-src http://mirrors.aliyun.com/debian wheezy-updates main contrib non-free deb http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free deb-src http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free" > /etc/apt/sources.list
EXPOSE 80
RUN apt-get update
RUN apt-get install libgdiplus -y && ln -s libgdiplus.so gdiplus.dll

FROM base AS final
WORKDIR /app 
ENTRYPOINT ["dotnet", "xxxxx.dll"]