项目结构

可以忽略中间三个Console项目

ApiCenter 是一个WebAPI项目,引用了NLog.MQ项目

ApiCenter使用5001端口

public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseKestrel(options=>options.Listen(IPAddress.Any,))
                .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,这里已经有了

编辑内容

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 

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 

ENTRYPOINT ["dotnet", "ApiCenter/out/ApiCenter.dll"]

打包镜像

docker build -t apicenter:1.0 .

可以看到打包过程

成功后查看镜像

运行镜像

docker run -d -p : 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 : -v /neworiental/myregistry:/var/lib/registry registry

这里将/var/lib/registry目录挂载到自定义目录/neworiental/myregistry

修改一个镜像名称,这里直接用registry测试

docker tag registry /mythsky/registry

需要注意这里使用ip+port的前缀命名

访问http://10.15.4.156:5000/v2/_catalog,此时可以看到镜像仓库为空

推送镜像

docker push /mythsky/registry

再次查看浏览器

这样就推送成功了,在目录/neworiental/myregistry/docker/registry/v2/repositories/mythsky/ 中查看

现在换一台服务器,比如10.15.4.155

获取镜像

docker pull /mythsky/registry

这样就获取成功了。

使用Docker发布DNC项目的更多相关文章

  1. 结合docker发布后端项目(基于gradle包管理)的shell脚本

    结合docker发布后端项目(基于gradle包管理)的shell脚本 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统(敏感信息都进行了处理) 目前主流的 ...

  2. 结合docker发布前端项目(基于npm包管理)的shell脚本

    结合docker发布前端项目(基于npm包管理)的shell脚本 本教程依据个人理解并经过实际验证为正确,特此记录下来,权当笔记. 注:基于linux操作系统 目前主流的前后端分离的项目中,常常在部署 ...

  3. 【linux】【jenkins】自动化运维四 整合gitlab、docker发布java项目

    jenkins发布java项目 过程参考发布vue项目.https://www.cnblogs.com/jxd283465/p/11543431.html 大同小异. vue建立的是Freestyle ...

  4. 【linux】【jenkins】自动化运维三 整合gitlab、docker发布vue项目

    由于工作需要,这里我先创建一个vue的工程. 1.首先安装好gitlab相关插件:GitLab.GitLab Hook.NodeJS 插件安装参考:https://www.cnblogs.com/jx ...

  5. vmware14中安装centos7并使用docker发布spring-boot项目

    1.vmare中centos7安装(同一路由器无线网络下) 1.1选择桥接模式 1.2修改配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33(这里不一 ...

  6. 使用Jenkins与Docker持续集成与发布NetCore项目(实操篇)

    使用Jenkins与Docker持续集成与发布NetCore项目(教程一) 原文地址:https://www.cnblogs.com/Jackyye/p/12588182.html 基本环境 该教程的 ...

  7. docker封装nuxt项目使用jenkins发布

    一.概述 vue项目可以打一个dist静态资源包,直接使用Nginx发布即可. 但是nuxt项目无法像vue那样,可以打一个dist静态资源包. 需要安装Node.js,并使用npm install ...

  8. .NET Core使用skiasharp文字头像生成方案(基于docker发布)

    一.问题背景 目前.NET Core下面针对于图像处理的库微软并没有集成,在.NET FrameWork下我们已经习惯使用System.Drawing类库做简单的图像处理,到了.NET Core下一脸 ...

  9. Docker 发布 Abp net core web 服务

    Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是S ...

随机推荐

  1. Appium+Python自动化 1 环境搭建(适用windows系统-Android移动端自动化)

    一.安装并配置 java jdk ①下载 java jdk后 安装,安装完成后,配置环境变量 打开计算机->系统属性->高级系统设置->环境变量->新建(系统变量),如图所示: ...

  2. excel日期拾取插件(支持Excel 2007 - 2016)

    插件安装完毕后示意图如下: 插件安装说明请查看附件里面的安装说明. 插件下载

  3. gson的特殊用法

    1.gson包在处理 字符串转 Map 或者 List 的方法. List memberList = gson.fromJson(str,new TypeToken<List>() {}. ...

  4. 在Java中使用Socket模拟客户端和服务端(多线程)

    1:Socket与ServerSocket的交互 2.Socket和ServerSocket介绍 Socket 构造函数 Socket() Socket(InetAddress address, in ...

  5. [f]智能获取浏览器版本UA信息的方法

    var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { ...

  6. HTTP 初步探究

    网络上存在很多资源,也持续不断地生成新的资源.为了新建.获取和操作这些资源,引来了两个问题:如何定位资源,如何对他们进行操作.第一个问题引申出了 URI / URL 即 uniform resourc ...

  7. uva10256(计算几何)

    省选前练模板系列: #include<cmath> #include<cstdio> #include<cstring> #include<iostream& ...

  8. noip第32课资料

  9. Linux命令中:rsync和scp之间的区别

    scp是把文件全部复制过去,当文件修改后还是把所有文件复制过去, rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去 rsync -av 10.251.205.8:/usr1 ...

  10. Java中的==与equals

    当使用==操作符判断类时,实际上判断的是二者是否指向同一个对象 若要判断两个对象是否含有相同的数据,需使用Object类中的equals方法 java中所有类都是从Object类中派生出来的