项目结构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
这样就获取成功了。