部署.Net6项目到docker

部署.net6项目到docker

【1】新建.net6 mvc或webapi项目;
【2】在mvc或webapi项目的根目录下创建Dockerfile文件,并设置为始终复制;

Dockerfile文件内容为:

#添加.net6基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
#容器工作目录
WORKDIR /app

#指定项webapi或mvc站点的内部启动端口,默认是80
#ENV ASPNETCORE_URLS http://+:5001

#暴露docker容器端口
#EXPOSE 8001
#EXPOSE 443

#拷贝发布目录下的所有文件到容器的工作根目录
#COPY . . (这样写也可以)
COPY ./ ./

# 如果用System.SqlClient.dll访问数据库,需要加这一句
RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf

#容器入口点
ENTRYPOINT ["dotnet", "dotnet6Demo.web.dll"]
【3】发布mvc或webapi项目;
【4】将发布后的mvc或webapi项目拷贝到centos服务器的某个文件夹,例如拷贝到【/wwwroot/myproject】文件夹;
【5】安装docker

安装方法参考:https://www.jb51.net/article/232534.htm

【6】安装.net6镜像
docker pull mcr.microsoft.com/dotnet/aspnet:6.0
【7】进入到centos服务器的 /wwwroot/myproject 目录,构建一个镜像,镜像名格式为【镜像名:版本号】,比如:dotnet6-demo:0.0.1

构建镜像命令:

cd /wwwroot/myproject
docker build -t dotnet6-demo:0.0.1 .

dotnet6-demo 表示构建的镜像名称,:0.0.1表示镜像版本号,注意镜像名后面有个空格 + 英文点号,表示构建当前路径下的文件

上面这条命令是用默认配置文件名 Dockerfile 构建的镜像,如果用自定义配置文件名构建镜像,需要加 -f 参数。

docker build -f Dockerfile02 -t dotnet6-demo:0.0.1 .
【8】创建自定义网络

默认网络docker0,它不能用域名访问,所以要创建自定义网络。

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

参数说明:

  • --driver bridge #表示桥接模式
  • --subnet 192.168.0.0/16 #16表示最多支持65535个ip,可以分配192.168.0.2到192.168.255.255,如果没有指定--subnet参数默认网段为172.17.0.0/16,默认网关为172.17.0.1;
  • --subnet 192.168.0.0/24 #24表示最多支持254个ip,可以分配192.168..0.2到192.168.0.255
  • --gateway #表示docker容器的网关

mynet表示网络名

在docker 中直接 run 创建容器时不加自定义的网络,默认使用网络名为bridge的网络,这是docker0网络,容器之间无法使用容器名相互ping通,只能通过ip相互ping通。

我们自己定义的网络,容器之间是可以直接通过容器名相互ping通的。

查看mynet网络的详细信息:

docker network inspect mynet
【9】创建并运行容器

创建容器格式:

docker run -d --name 容器名 -p 外部端口号:docker容器端口号 --restart=always -v /宿主机目录 : /容器目录 镜像名

使用默认网络 docker0 创建容器(生产环境不推荐):

docker run -d --name my-dotnet6-demo01 -p 8001:80 --restart=always -v /www-appdata/dotnet6-demo/logs:/logs -v /www-appdata/dotnet6-demo/upload:/upload dotnet6-demo:0.0.1

使用自定义网络创建容器(多了个 --net 参数):

docker run -d --name my-dotnet6-demo01 -p 8001:80 --restart=always -v /www-appdata/dotnet6-demo/logs:/logs -v /www-appdata/dotnet6-demo/upload:/upload --net mynet dotnet6-demo:0.0.1

参数说明:

  • -d #后台运行
  • -p 8001:80 #缩主机端口号:docker端口号
  • -v #数据卷路径,格式:(-v /宿主机目录:容器目录)或者(-v /容器目录),可以带多个 -v 参数。
  • --restart=always #dokcer重新启动时也将容器自动启动
  • --net mynet #指定网络名

查看正在运行的容器:

docker ps

查看所有容器:

docker ps -a
【10】访问容器

访问方式:http://宿主机ip:端口号

http://192.168.1.200:8002

进入到容器

【11】进入到容器
docker exec -it my-dotnet6-demo01 /bin/bash

容器设置

给已有容器设置开机自动启动

docker update --restart=always 容器名字

取消容器开机自动启动

docker update --restart=no 容器名字

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • docker部署Asp.net core应用的完整步骤

    1 容器概念 使用Docker前我们首先要简单了解一下容器的概念.MSDN上有一张虚拟机和容器的对比图,很好的展示了虚拟机和容器的区别,如下所示,虚拟机包括应用程序.必需的库或二进制文件以及完整的来宾操作系统,每台虚拟机都有一个单独的内核,我们完全可以把虚拟机看做是一台真实的物理机.容器包括应用程序及其所有依赖项,与其他容器共享 OS 内核,容器在主机操作系统上作为独立进程运行,我们可以把容器看做是一个应用沙盒. 我们经常会遇到"我机器上可以运行"的问题吧,然后部署到其他机器时就遇到了

  • Linux系统Docker 部署 ASP.NET Core应用的流程分析

    一.系统环境 1.腾讯云轻量应用服务器CentOS7.6 二.操作流程及途中遇到的问题 1.SSH方式远程Linux ssh <username>@<IP address or domain name> 如果遇到下图问题: 出现这个问题的原因:known_hosts是记录远程主机的公钥的文件,之前重装个系统,而保存的公钥还是未重装系统的系统公钥,在ssh链接的时候首先会验证公钥,如果公钥不对,那么就会报错 解决方法:使用shh-keygen 命令ssh-keygen -R IP,执

  • 详解ASP.NET Core Docker部署

    前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序. ASP.NET Nginx 发布和部署 :http://www.cnblogs.com/savorboard/p/dotnet-core-publish-nginx.html. Asp.Net Jexus 发布和部署:http://www.cnblogs.com/savorboard/p/dot-n

  • Docker 部署net5程序实现跨平台功能

    部署环境:docker 容器.liunx系统.这里采用VmWare虚拟机.并采用MobaXterm工具实现终端连接linux系统 2.(环境准备)启动虚拟机.并终端连接 192.168.20.128 (后续直接采用此地址直接访问.NET5项目) linux系统通过ifconfig查看IP地址.并在宿主机中使用MobaXterm操作使用(关于MobaXterm使用详见:https://www.jb51.net/article/212323.htm 3.创建.NET5项目.此项目创建asp.net

  • .NET 5 部署在docker上运行的方法

    1.创建站点 创建一个ASP.NET Core Web应用程序,选中启用Docker支持.自动帮我们创建一个Dockerfile文件. 2.编写Dockerfile文件 dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像.由一行行命令语句组成,并且支持#开头的注释行. dockerfile主题内容一般分为4部分 基础镜像信息 维护者信息使用label指令 镜像操作指令 容器启动时执行指令 #See https://aka.ms/container

  • 部署.Net6项目到docker

    部署.net6项目到docker [1]新建.net6 mvc或webapi项目: [2]在mvc或webapi项目的根目录下创建Dockerfile文件,并设置为始终复制: Dockerfile文件内容为: #添加.net6基础镜像 FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base #容器工作目录 WORKDIR /app #指定项webapi或mvc站点的内部启动端口,默认是80 #ENV ASPNETCORE_URLS http://+:50

  • Mac下部署springBoot项目到Docker中(demo)

    SpringCloud + Docker 的便利和强大真的超乎想象,我已经入坑了-好了,不说废话,记录一个简单的 Demo 供其他同学排坑. 前言 惯例不能丢,先上源代码:docker-demo 这个项目的代码是我执行在Docker上部署SpringBoot的java代码和Dockerfile配置文件,相关的执行命令语句也记录在上. 操作流程 本地部署 在 Mac 上安装启动 Docker.详细步骤请参考:MacOS安装Docker clone 项目:docker-demo,然后依次执行: do

  • 一篇文章教会你部署vue项目到docker

    目录 第一步 第二步,生成镜像 第三步,生成(启动)一个容器 总结 让我在5分钟你教不会你把项目部署到docker,前提是你得服务器装有docker,这里方便装宝塔,大佬当我没说. 大致分为3步: 第一是弄一个nginx的配置文件然后构建镜像的时候把它放进去取代原来的配置和写Dockerfile生成镜像的一些配置 第二是生成镜像 第三是生成启动容器,ok开始,顺便抛砖引玉 第一步 server { listen 80; server_name localhost; # docker服务宿主机的i

  • 部署.NET6项目到IIS

    1.下载.net6 运行时以及host支持 https://dotnet.microsoft.com/download/dotnet/6.0 2.IIS 没说什么特别的,绑定域名端口,然后设置IIS应用程序池到"无托管" 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • Docker部署java项目的详细步骤(利用Dockerfile方式)

    目录 前言 1. 首先找一个你熟悉的目录下创建一个目录upload(这个目录可以随便),并把java的linux和jar包上传进去 2. 创建一个名为 Dockerfile文件 3. 以上命令配置完成后,即可输入命令进行build,然后回车 4 . 启动该容器 5. 访问地址 总结 前言 如何将java项目部署到Docker中呢,这里以一个springboot为例 以下命令全部都是以linux为基础的 1. 首先找一个你熟悉的目录下创建一个目录upload(这个目录可以随便),并把java的li

  • 通过idea打包项目到docker的操作方法

    很多小伙伴一直想知道如何把项目放到docker中运行,今天就为大家带来如何将自己的项目发布到docker中(Centos) 安装虚拟机下载docker 直接访问官网 链接: docker官方文档. 1.打开官方首页,选择download and install 2.选择docker for linux 3.选择centos版本(这里要根据自己的系统选择合适的版本) 4.直接按照官网的操作来(选择自己必要的步骤) 1)删除之前已经安装的docker(必选) sudo yum remove dock

  • Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码

    最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4.项目准备 5.编写 Dockerfile 6.发布项目 7.测试服务 环境准备 系统:Ubuntu 17.04 x64 Docker 17.12.0-ce IP:45.32.31.101 一.安装 Docker CE 国内不建议使用:"脚本进行安装",会下载安装很慢,使用步骤 1 安装,看下面的链接:常规安装方式 1.常规安装方式 Ubuntu 17.04 x64 安装

  • Docker 部署Django项目的方法示例

    使用docker部署django项目也很简单,挺不错,分享下 环境 默认你已安装好docker环境 django项目大概结构 (p3s) [root@opsweb]# tree opsweb opsweb ├── apps ├── logs ├── manage.py ├── media ├── opsweb ├── README.md ├── requirements.txt └── static 编写Dockerfile 这里指定 Python 版本为docker官方提供的 "0.0.0.0

  • 使用Docker部署SpringBoot项目的实现方法

    Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署. 一个简单 Spring Boot 项目 在 pom.xml 中 ,使用 Spring Boot 2.0 相关依赖 <parent> <groupId>org.springframework.boot</groupId>

  • centos6使用docker部署kafka项目的方法分析

    本文实例讲述了centos6使用docker部署kafka项目的方法.分享给大家供大家参考,具体如下: 目录结构: /kafka     /Dockerfile     /start.sh     /Readme     /kafka_2.11-0.10.2.1.tgz Dockfile FROM centos MAINTAINER qiongtao.li hnatao@126.com ADD ./kafka_2.11-0.10.2.1.tgz /opt ADD ./start.sh /star

随机推荐