Docker部署.NET Core

一、安装与配置Docker

1、首先安装 Docker 必要依赖包 

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

2、由于自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo

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

3、用 yum 安装 Docker

yum install -y docker-ce

4、直接yum安装,安装成功后查看版本

docker -v

5、启动docker

service docker start

6、设置开机启动

chkconfig docker on

7、国内访问 Docker Hub 较慢, 可以使用腾讯云或阿里云等其他提供的国内镜像源, 加速访问 Docker Hub,以下配置的是腾讯云

echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker

8、重新加载服务配置

systemctl daemon-reload

9、重启Docker

service docker restart

 二、新建.NET Core程序
1、新建项目

 2、在项目中新建Dockerfile 文件,内容如下 

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 5000  //端口号(将容器 5000 端口暴露出来, 允许外部连接这个端口。)
COPY . . //将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录
ENTRYPOINT ["dotnet", "CoreTestWeb.dll"] //运行的程序集

三、让程序在容器中跑起来

1、发布项目并上传至服务

mkdir /usr/core 新建目录,将发布文件上传至本目录

2、构建容器

进入发布目录
cd /usr/core 
构建镜像
docker build -t aspnetapp . 
生成容器实例
docker run -d  --restart=always -p 5000:5000 --name myapp aspnetapp

如果出现:docker: Error response from daemon: cannot start a stopped process: unknown.错误,

 执行此命令:yum install -y libseccomp-devel 解决

并重新构建镜像容器

docker stop myapp 停止实例
docker rm myapp 移除实例
docker rmi aspnetapp 移除镜像

docker build -t aspnetapp . 构建镜像
docker run -d  --restart=always -p 5000:5000 --name myapp aspnetapp 生成实例

3、访问站点

 docker 相关命令

#安装 CentOS已经将Docker软件包放在了Extras软件源中,直接利用即可
yum install docker-io -y

#查看docker的版本 version
docker -v

#开启Docker服务
systemctl start docker.service

#开机启动Docker服务
systemctl enable docker.service

#查看Docker服务启动状态
systemctl status docker.service

#重启Docker服务
systemctl restart docker.service

#查看所有镜像
docker images

#删除一个imageid的镜像
docker rmi [IMAE_ID]

#删除所有镜像
sudo docker rmi $(docker images -q)


#查看所有容器运行状态
docker ps -a
docker container ls -all

#删除一个containerid的容器(实例)
docker rm 6f0c67de4b72

#删除所有容器
docker rm $(sudo docker ps -a -q)

#查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2019-06-08" --tail=100 CONTAINER_ID

#查看某时间之后的日志:
docker logs -t --since="2019-06-08" CONTAINER_ID

#查看某时间段日志:
docker logs -t --since="2019-06-08" --until "2019-06-09" CONTAINER_ID

#查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker是一个开源的容器化平台,可以将应用程序及其依赖项打包成一个独立的可移植容器,以便在任何环境中快速部署和运行。它提供了跨平台的容器化解决方案,能够提高应用程序的可移植性和可靠性。 Jenkins是一个开源的自动化构建工具,它能够自动化构建、测试和部署项目。通过使用Jenkins,开发人员可以实现持续集成和持续交付(CI/CD),从而提高开发效率和软件质量。 .NET Core是一个跨平台的开发框架,可以在多种操作系统上运行。它是微软推出的下一代开发框架,允许开发人员使用多种编程语言(如C#、F#等)进行开发,并且具有高性能和可扩展性。 在使用Jenkins进行CI/CD时,结合Docker可以实现更高效的构建和部署流程。可以通过Docker容器化应用程序和其依赖项,使得项目在不同环境中运行更加稳定和可靠。通过使用Docker镜像,我们可以在不同的开发、测试和生产环境中快速部署应用程序,并且可以保证环境的一致性。 同时,利用Jenkins的插件和Docker插件,我们可以在Jenkins中集成Docker容器的管理和部署功能。例如,可以通过Jenkins自动化构建.NET Core应用程序,并将构建好的镜像推送到Docker仓库中。然后,在部署阶段,可以使用Jenkins的Docker插件来自动化部署应用程序到指定的Docker容器中。 总的来说,结合Docker、Jenkins和.NET Core SDK可以实现持续集成和持续交付的自动化流程,提高开发效率和软件质量。通过容器化应用程序和使用跨平台的.NET Core框架,我们可以实现更高效、可靠和可移植的应用程序开发和部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王甜甜(.NET)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值