2019年のWindowsサーバーでドッカー作曲によるAsp.Netコアを展開します

まず、ドッカーEnterpriseをインストール

インストールマニュアルは、次のとおりです。  https://docs.docker.com/install/windows/docker-ee/

インストールが完了すると、下図のように

 

 

 

第二に、最初にすべての、のWindowsの鏡像を引っ張ります

これは、ご使用の環境にイメージをダウンロードし、Microsoftのナノサーバードッカーとなります。画像は、パッケージがドッカーコンテナとして実行することができ、最小のWindowsサーバーオペレーティングシステムです。あなたはまた、コンテナから直接実行することができ、独自のアプリケーションのための基礎として使用することができます。

ドッキングウィンドウ画像プルmcr.microsoft.com/windows/nanoserver:1809

 

第三に、そして簡単なテストコンテナを実行

ドッキングウィンドウコンテナの実行mcr.microsoft.com/windows/nanoserver:1809ホスト名

これは、新しいコンテナのWindowsナノServerイメージを実行し、hostnameコマンドを実行するためにそれを教えてくれます。コンテナのマシン名の出力、効果的にランダムなIDドッカーを提供します。コマンドを繰り返し、あなたは別のホスト名を持つたびに表示されます。

 

 

 

第四に、第一の画像セットはドッカーハブドッキングウィンドウIDをプッシュ(アカウントはドッカです)

[設定]ドッキングウィンドウのID

$ dockerId = ' <あなたの-ドッキングウィンドウ-ID> '

 

 

 

第五に、テスト生成DockerFile

ドッキングウィンドウの画像は、ドッキングウィンドウのイメージのビルドコマンドによってDockerfileと呼ばれる簡単なスクリプトを使用して構築されています。Dockerfileは、完全なアプリケーションの展開とその依存関係のすべてを説明しています。

使用PowerShellの生産DockerFile

' mcr.microsoft.com/windows/nanoserver:1809 FROM ' | セット- コンテンツDockerfile
 CMDエコーのHello World!" | アドオンコンテンツDockerfile

六、ビルドイメージ

今すぐ実行]ドッキングウィンドウのイメージビルド、画像識別ごドッカーIDを使用していますラベル:

ドッキングウィンドウのイメージビルド--tag $ dockerId /ハローワールド。 

注:「」が必要ですビルドバック。ディレクトリを構築するための許可があれば、それは新しいフォルダを作成するのが最善です。または生産もDockerFileを構築することができる場合であっても失敗して修正します。私は、これは管理者権限を持つべきではないと思います

 

 

 

七、実行コンテナ

ドッキングウィンドウコンテナの実行$ dockerId /ハローワールド

 

 

八、ドッカーハブにミラーをプッシュ

さて、簡単なHello Worldアプリケーション用ドッカーイメージで。画像は、ポータブルユニットである - あなたは、誰もがそれを引き出し、独自のアプリケーションを実行することができ、ドッカーハブにプッシュ画像を設定することができます。

あなたの資格情報を使用して最初のドッキングウィンドウのログインはレジストリによる認証のために実行します。その後、イメージをプッシュ:

ドッキングウィンドウの画像プッシュ$ dockerId /ハローワールド

 

 

何の権限はありません。初上陸

ドッキングウィンドウのログイン-uユーザ名-pパスワード

私の地元の窓の上にオーバー押した後、図2に見ることができます。

 

 

あなたは地元のプルを試すことができます。

ドッキングウィンドウプル13797054045 /ハローワールド

 

ドッカー作曲展開を使用してナイン、

我拿了一个测试项目来做测试。先把项目通过git拉到了服务器上。

下载Docker Compose

Invoke-WebRequest https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Windows-x86_64.exe -UseBasicParsing -OutFile $env:ProgramFiles\docker\docker-compose.exe

写DockerFile。我偷了个懒,通过VS自动生成的,然后修改的

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 8018  --我这里只改了端口

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["Gas.Monitoring.Web/Gas.Monitoring.Web.csproj", "Gas.Monitoring.Web/"]
COPY ["Gas.Monitoring.Business.Application/Gas.Monitoring.Business.Application.csproj", "Gas.Monitoring.Business.Application/"]
COPY ["Gas.Monitoring.Business.Repository/Gas.Monitoring.Business.Repository.csproj", "Gas.Monitoring.Business.Repository/"]
COPY ["ZB.Infrastructure.Base/ZB.Infrastructure.Base.csproj", "ZB.Infrastructure.Base/"]
COPY ["ZB.Infrastructure/ZB.Infrastructure.csproj", "ZB.Infrastructure/"]
COPY ["Gas.Monitoring.Business.Domain/Gas.Monitoring.Business.Domain.csproj", "Gas.Monitoring.Business.Domain/"]
COPY ["ZB.Infrastructure.FileSystem/ZB.Infrastructure.FileSystem.csproj", "ZB.Infrastructure.FileSystem/"]
COPY ["ProjectBuilder/ProjectBuilder.csproj", "ProjectBuilder/"]
COPY ["Gas.Monitoring.MP.Application/Gas.Monitoring.MP.Application.csproj", "Gas.Monitoring.MP.Application/"]
COPY ["Gas.Monitoring.MP.Repository/Gas.Monitoring.MP.Repository.csproj", "Gas.Monitoring.MP.Repository/"]
COPY ["Gas.Monitoring.MP.Domain/Gas.Monitoring.MP.Domain.csproj", "Gas.Monitoring.MP.Domain/"]
COPY ["ZB.UEditor.Core/ZB.UEditor.Core.csproj", "ZB.UEditor.Core/"]
RUN dotnet restore "Gas.Monitoring.Web/Gas.Monitoring.Web.csproj"
COPY . .
WORKDIR "/src/Gas.Monitoring.Web"
RUN dotnet build "Gas.Monitoring.Web.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "Gas.Monitoring.Web.csproj" -c Release -o /app

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

然后修改后。这里我改的时候碰了不少壁啊。还好都解决了。

FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1809 AS base
WORKDIR /biogas
EXPOSE 8018

FROM microsoft/dotnet:2.2-sdk-nanoserver-1809 AS build
WORKDIR /src
COPY ["Gas.Monitoring.Web/Gas.Monitoring.Web.csproj", "Gas.Monitoring.Web/"]
COPY ["Gas.Monitoring.Business.Application/Gas.Monitoring.Business.Application.csproj", "Gas.Monitoring.Business.Application/"]
COPY ["Gas.Monitoring.Business.Repository/Gas.Monitoring.Business.Repository.csproj", "Gas.Monitoring.Business.Repository/"]
COPY ["ZB.Infrastructure.Base/ZB.Infrastructure.Base.csproj", "ZB.Infrastructure.Base/"]
COPY ["ZB.Infrastructure/ZB.Infrastructure.csproj", "ZB.Infrastructure/"]
COPY ["Gas.Monitoring.Business.Domain/Gas.Monitoring.Business.Domain.csproj", "Gas.Monitoring.Business.Domain/"]
COPY ["ZB.Infrastructure.FileSystem/ZB.Infrastructure.FileSystem.csproj", "ZB.Infrastructure.FileSystem/"]
COPY ["ProjectBuilder/ProjectBuilder.csproj", "ProjectBuilder/"]
COPY ["Gas.Monitoring.MP.Application/Gas.Monitoring.MP.Application.csproj", "Gas.Monitoring.MP.Application/"]
COPY ["Gas.Monitoring.MP.Repository/Gas.Monitoring.MP.Repository.csproj", "Gas.Monitoring.MP.Repository/"]
COPY ["Gas.Monitoring.MP.Domain/Gas.Monitoring.MP.Domain.csproj", "Gas.Monitoring.MP.Domain/"]
COPY ["ZB.UEditor.Core/ZB.UEditor.Core.csproj", "ZB.UEditor.Core/"]
RUN dotnet restore "Gas.Monitoring.Web/Gas.Monitoring.Web.csproj"
COPY . .
WORKDIR "/src/Gas.Monitoring.Web"
RUN dotnet build "Gas.Monitoring.Web.csproj" -c Release -o /biogas/build

FROM build AS publish
RUN dotnet publish "Gas.Monitoring.Web.csproj" -c Release -o /biogas/publish

FROM base AS final
WORKDIR /biogas
COPY --from=publish /biogas/publish .
ENTRYPOINT ["dotnet", "Gas.Monitoring.Web.dll"]

这样改的好处是我服务器上是不用下任何环境的,.Net Core SDK和Runtime都在容器里面了。

然后,编写docker-compose.yml。因为我这里只有一个项目,比较简单。唯一要说的是空格要注意!!!

version: '3.4'

services:
    biogas:
      image: biogas
      build:
        context: .
        dockerfile: Gas.Monitoring.Web/Dockerfile
      ports:
        - "8018:8018"

顺便贴一个多项目的

バージョン:' 3.4 ' 

サービス:
    yopm:
      画像:yopm 
      ビルド:
        コンテキスト:。
        dockerfile:YO.PM.Web / Dockerfileの
      ポート:
         - " 8081:8081 " 

    yopmclub:
      画像:yopmclub 
      ビルド:
        コンテキスト:。
        dockerfile:YO.Clubs.Web / Dockerfileの
      ポート:
         - " 8082:8082 "

プロジェクトディレクトリにCDコマンドを実行します

ドッキングウィンドウ、コンビルド

 

 

そして、実行

-dアップドッキングウィンドウ、コン

 

成功への最後のではないかどうか確認します

 

 emmmm ......かなり簡単ハようです!私は自分の道を得るために二日間、あまりにも料理を持っています。

 

おすすめ

転載: www.cnblogs.com/zhaoshang/p/11951762.html