項目結構sql
能夠忽略中間三個Console項目docker
ApiCenter 是一個WebAPI項目,引用了NLog.MQ項目json
ApiCenter使用5001端口api
public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseKestrel(options=>options.Listen(IPAddress.Any,5001)) .ConfigureLogging(logging => { logging.ClearProviders(); logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); }) .UseNLog() .Build();
一個簡單的ValuesController瀏覽器
// GET api/values [HttpGet] public IEnumerable<string> Get() { //string sql = GetViewSQL("viewbiz", 1, 1, "*", null, null); return new string[] { "value1", "value2" }; }
將項目文件夾發送到CentOS(10.15.4.156)中服務器
新建一個Dockerfile,這裏已經有了app
編輯內容ide
FROM microsoft/dotnet WORKDIR /app # copy everything else and build COPY . ./ RUN dotnet restore RUN cd ApiCenter RUN dotnet publish -c Release -o out EXPOSE 5001 ENTRYPOINT ["dotnet", "ApiCenter/out/ApiCenter.dll"]
或者使用下面的內容測試
FROM microsoft/dotnet WORKDIR /app # copy everything else and build COPY . ./ RUN cd ApiCenter RUN dotnet restore RUN dotnet publish -c Release -o out EXPOSE 5001 ENTRYPOINT ["dotnet", "ApiCenter/out/ApiCenter.dll"]
打包鏡像ui
docker build -t apicenter:1.0 .
能夠看到打包過程
成功後查看鏡像
運行鏡像
docker run -d -p 5001:5001 apicenter:1.0
查看容器狀態
打開瀏覽器訪問便可
下載registry鏡像
docker pull registry
修改配置文件
vi /etc/docker/daemon.json
內容以下
{ "graph": "/neworiental/data/docker", "insecure-registries":["10.15.4.156:5000"] }
重啓docker
systemctl daemon-reload
systemctl restart docker
啓動registry
docker run -d -p 5000:5000 -v /neworiental/myregistry:/var/lib/registry registry
這裏將/var/lib/registry目錄掛載到自定義目錄/neworiental/myregistry
修改一個鏡像名稱,這裏直接用registry測試
docker tag registry 10.15.4.156:5000/mythsky/registry
須要注意這裏使用ip+port的前綴命名
訪問http://10.15.4.156:5000/v2/_catalog,此時能夠看到鏡像倉庫爲空
推送鏡像
docker push 10.15.4.156:5000/mythsky/registry
再次查看瀏覽器
這樣就推送成功了,在目錄/neworiental/myregistry/docker/registry/v2/repositories/mythsky/ 中查看
如今換一臺服務器,好比10.15.4.155
獲取鏡像
docker pull 10.15.4.156:5000/mythsky/registry
這樣就獲取成功了。