【C#】.net core命令行程序部署至docker容器里面运行

这里以.net core 3.1为例:

一、部署docker

1.前提条件

    Docker运行对内核要求比较高,因此一般建议直接在Ubuntu这样的平台运行。但作为一个容器标准,Docker也是支持其他如CentOS, Mac OS X, Windows等平台。

  • CentOS 7
  • CentOS 8
  • 更高版本...

2.自动安装

使用官方安装脚本自动安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

3.手动安装

3.1卸载旧版本

    较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。


 sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine


3.2安装依赖

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


3.3设置镜像仓库

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


3.4安装 Docker Engine-Community

    安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

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


eg:如果启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。

3.5要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

yum list docker-ce --showduplicates | sort -r


3.6通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io


3.7启动并设置开机自启

sudo systemctl start docker

sudo systemctl enable docker



二、创建.net core项目

2.1发布.netcore3.1项目

    命令行程序

2.2创建Dockerflie

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
COPY ./ App/
WORKDIR /App
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["dotnet", "xxxxx.dll"]

2.3将程序包上传至服务器

2.4启动程序

打包docker:
docker build -t   镜像名:备注信息  -f Dockerfile .

导出打包好的docker包:
docker save -o  导出的文件名  镜像信息(可以通过docker images查看)

导入docker镜像包:
docker load -i  导入的镜像包文件所在路径与名称

docker run  -d \
--name 容器名 \
--restart=always   \
--mount type=bind,src=/映射出来的物理路径或文件,dst=/需要映射的文件路径或者文件 \
   镜像名:备注信息


本文出自《粉墨记忆》 => 《【C#】.net core命令行程序部署至docker容器里面运行
转载时请注明出处及相应链接, 本文地址:https://www.fmxk.ac.cn/?post=22

WRITTEN BY

avatar


发表评论: