首页 > 编程语言 >docker 部署.net core 3.1程序

docker 部署.net core 3.1程序

时间:2024-02-29 14:14:36浏览次数:20  
标签:core 容器 sudo etc 3.1 镜像 docker localtime

docker安装

安装所需的软件包,yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

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

使用命令来设置docker仓库(阿里源,官方源太慢了)

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

安装docker

sudo yum install docker-ce docker-ce-cli containerd.io

启动docker并设置开机启动

启动docker

sudo systemctl start docker

设置开机启动

sudo systemctl enable docker

设置镜像加速器

登录阿里云控制台,并搜索 容器镜像服务 并选择镜像加速器

 

按照步骤设置镜像加速器

docker使用

接下来就是使用docker部署我们的程序了,在我们的程序中添加Dockerfile

 Dockerfile

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
#修复调用System.Drawing生成图片时确少 libgdiplus 的问题
RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list 
RUN apt-get update -y && apt-get install -y libgdiplus && apt-get clean && ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
WORKDIR /app
EXPOSE 5004
COPY . .
ENTRYPOINT ["dotnet", "TyFrame.WebApi.dll"]

FROM定制的镜像都是基于 FROM 的镜像,这里的asp.net core:3.1就是定制需要的基础镜像。后续的操作都是基于asp.net core:3.1。

RUN:用于执行后面跟着的命令行命令。这里是因为基础镜像中确少依赖 libgdiplus 需要安装否则无法生成验证码。

WORKDIR 工作目录。

EXPOSE 声明端口,帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射,在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。

CPOY 复制指令,从上下文目录中复制文件或者目录到容器里指定路径,COPY . . 意思是将本机的当前目录拷贝到容器中的工作目录中。

ENTRYPOINT 类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。

将编译好的发布文件复制到安装好docker的机器上,进入该目录执行如下命令进行构建镜像:

sudo docker build -t tyframeapi 

-t镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

如需要了解更多参数,https://docs.docker.com/engine/reference/commandline/build/

现在可以通过如下命令查看镜像列表:

  使用构建好的镜像启动容器

sudo docker run  --name tyframeapi -v /etc/localtime:/etc/localtime:ro -d -p 5001:5001  tyframeapi

--name为容器指定一个名称

-v挂载一个卷,-v /etc/localtime:/etc/localtime:ro 挂载本机的/etc/localtime到容器内的/etc/localtime :ro readonly

-d后台运行容器,并返回容器ID

-p指定端口映射,格式为:主机(宿主)端口:容器端口

tyframeapi指定容器装载的镜像

如需要了解更多参数,https://docs.docker.com/engine/reference/commandline/run/

通过docker ps –a查看容器运行情况

 看到STATUS 为UP状态访问该服务器的5001端口,网站可以正常访问,docker的安装和部署就完整完成了,由于很少使用Linux并且公司其他人使用的也不多,所以就采用了Jenkins来做持续集成。

标签:core,容器,sudo,etc,3.1,镜像,docker,localtime
From: https://www.cnblogs.com/lgx5/p/18043595

相关文章

  • centos下部署docker
    一、docker概述docker是基于go语言实现的云开源项目,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布流行的linux和windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口二、docker的优点系统平滑移植、容器虚拟化,从开发环......
  • .net 应用程序 生成Docker映像时 dotnet restore找不到自定义源的包的问题,ContainerBu
    一、问题:我们在.net应用中生成Docker映像时,会出现ContainerBuildAndLaunch任务意外失败的问题。 查看输出窗口发现,是执行dotnetrestore时,找不到包的问题,因为我的这些包是在自己的私有源上二、解决方案:在Dockerfile文件中,在执行dotnetrestore前一行添加nuget私有源就行......
  • ASP.NET Core MVC应用模型的构建[4]: Action的选择
    ControllerModel类型的Actions属性包含一组描述有效Action方法的ActionModel对象。对于定义在Controller类型中的所有方法,究竟哪些方法才能成为有效的Action方法呢?所以在正式介绍ActionModel类型之前,我们先来聊聊Action方法的选择规则。一、Action方法的选择二、ActionModel三、......
  • 基于Vue(提供Vue2/Vue3版本)和.Net Core前后端分离、强大、跨平台的快速开发框架
    前言今天大姚给大家推荐一款基于Vue(提供Vue2/Vue3版本)和.NetCore前后端分离、开源免费(MITLicense)、强大、跨平台的快速开发框架,并且框架内置代码生成器(解决重复性工作,提高开发效率),支持移动端(iOS/Android/H5/微信小程序):Vue.NetCore。提高开发生产效率、避免996可以考虑试试这......
  • coremark & dhrystone 移植要点
    目录移植coremark&dhrystone要点1.coremark1.1coremark计算方法1.2coremark移植方法2.dhrystone2.1dhrystone计算方式2.2dhrystone移植要点移植coremark&dhrystone要点1.coremark1.1coremark计算方法​ 计算的核心为下方的代码start_time();#if(MULTI......
  • 用Docker发布网站时,自动下载Directory.Build.props及其Import的文件
    为Blazor网站项目,“添加Docker支持”这时,网站项目根目录下会新增Dockerfile。#Seehttps://aka.ms/customizecontainertolearnhowtocustomizeyourdebugcontainerandhowVisualStudiousesthisDockerfiletobuildyourimagesforfasterdebugging.FROMmcr.......
  • centos docker服务问题
     概述docker的应用版本正式上线,结果一上线就出各种幺蛾子。本文档主要介绍centos系统安装docker和启动的问题解决方法。环境dockerregistry:2centos6&&docker1.7.1centos7&&docker24.0.6docker服务启动失败docker安装,命令会自动安装依赖libcgroup。yuminsta......
  • docker常见的命令
    一:docker命令格式:docker选项命令选项:短格式和长格式短格式:一个连字符(-)加上单个字符-d-v-i等长格式:2个连字符(--)加上字符串--version注意:1:多个短格式的单字符可以组成起来一起使用dockerrun-ditubuntu/bin/bash 二:docker的一个完整的案例1:创建运行一个容器......
  • docker 运行postgresql 极限简洁教程
    首先要拉取pq的image:dockerpullpostgres,拉取后可以用dockerimagels查看是否拉取镜像成功。同理,一同拉取pgadmin4方便查看数据:dockerpulldpage/pgadmin4。然后运行image,生成container,运行pq和pgadmin:注意,因为数据库需要存储空间,配合docker运行就需要volume,注意下......
  • 漫谈.net core和Autofac中的Scoped生命周期
      我们知道,.netcore内置了IOC容器,通常,一个服务的生命周期有三种:Transient、Scoped、Singleton  Transient:临时性的服务,当进行服务注入时,每次都是重新创建一个新的对象实例Scoped:范围性的服务,当在一个范围内进行服务注入时,保证使用同一个实例对象(可以理解为一个ISer......