cetnos docker 部署 netcore项目 以及上传至阿里云docker hub

            cetnos docker 部署 netcore项目 以及上传至阿里云docker hub

docker部署netcore

因为部署netcore要求docker版本比较高我们这里新将 旧版版的docker卸载

停止docker:

systemctl stop docker

搜索已经安装的docker安装包:

yum list installed|grep docker 和rpm -qa|grep docker

卸载搜索出来的包:

yum -y remove 

删除docker镜像(看需要在做操作):

rm -rf /var/lib/docker

安装docker-ce 依赖:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2


更换国内源:

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce:

yum -y install docker-ce    

启动docker:

service docker start

查看版本: 

docker -v 

 

下载netcore(我这里的版本是2.2)根据需求 若只是部署 runtime即可: 

docker pull microsoft/dotnet:2.2-aspnetcore-runtime
docker pull microsoft/dotnet:2.2-sdk

项目所需Dockerfile可自行添加也可通过vs添加

注:vs生成的Dockerfile配置过多请根据需要自行设置,我这里提供最简单的Dockerfile

FROM microsoft/dotnet:2.2-aspnetcore-runtime //运行所需环境
WORKDIR /app         //在容器内目录
EXPOSE 80              //暴露端口
COPY . .                   //COPY Dockerfile 目录下所有文件
ENTRYPOINT ["dotnet", "demo.dll"]   //运行的dll

将项目发布后丢到centos上后在当前目录(Dockerfile同目录)后build 生成image:

docker build -t demonetcore .

查看生成的image:

docker images

运行docker 镜像:

docker run --name demonetcore -d -p 7778:80 demonetcore

 查看容器是否运行:

docker ps

 访问即可,若无法访问请注意:

  1. 防火墙
  2. 日志信息

这里在提供一下Docker-compose 不需要每次在运行docker run :

version: '3'
services:
  demonetcore:
    image: 'demonetcore'
    container_name: demo
    restart: always
    ports:
      - '7654:80'

将生成的image上传至阿里Docker Hub

阿里云: https://cr.console.aliyun.com/cn-hangzhou/instances/repositories

创建命名空间:

cetnos docker 部署 netcore项目 以及上传至阿里云docker hub_第1张图片

 创建镜像仓库:

cetnos docker 部署 netcore项目 以及上传至阿里云docker hub_第2张图片

设置数据源这里选择最简单的本地仓库,其他源根据需要自行配置:

cetnos docker 部署 netcore项目 以及上传至阿里云docker hub_第3张图片

 进入仓库中:

密码设置:

cetnos docker 部署 netcore项目 以及上传至阿里云docker hub_第4张图片

 上传image至阿里云docker-hub根据提示即可。

1. 登录阿里云Docker Registry

$ sudo docker login --username=t_1506139671187_0858 registry.cn-hangzhou.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

2. 从Registry中拉取镜像

$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/netcoredemo/coredemo:[镜像版本号]

3. 将镜像推送到Registry

$ sudo docker login --username=t_1506139671187_0858 registry.cn-hangzhou.aliyuncs.com$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/netcoredemo/coredemo:[镜像版本号]$ sudo docker push registry.cn-hangzhou.aliyuncs.com/netcoredemo/coredemo:[镜像版本号]

请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

4. 选择合适的镜像仓库地址

从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。

5. 示例

使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ sudo docker imagesREPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZEregistry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。

$ sudo docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

你可能感兴趣的:(docker,C#,docker,部署,netcore)