Docker部署.NET6项目的实现步骤

 更新时间:2023年12月07日 08:34:42   作者:无盐海  
Docker是现在比较流行的开源容器引擎,有了它让我们部署和维护系统更加方便,本文主要介绍了Docker部署.NET6项目,具有一定的参考价值,感兴趣的可以了解一下

Docker的三大核心概念

1、docker仓库(repository)

docker仓库(repository)类似于代码库,是docker集中存放镜像的场所。实际上,注册服务器是存放仓库的地方,其上往往存放着很多仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。

根据存储的镜像公开分享与否,docker仓库可以分为公开仓库(Public)和私有仓库(Private)两种形式。目前,最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载,国内的公开镜像包括Docker Pool,可以提供稳定的国内访问,与GitHub类似。

2、docker镜像(Image)

docker镜像类似于虚拟机镜像,可以将其理解为一个只读模板。除了提供容器运行时所需的程序、库、资源、配置等文件外,docker镜像还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)

我们把项目打包才成一个镜像,那么这个镜像中就有了我们项目所依赖的所有环境和资源

3、 docker容器(container)

.Net项目部署到Docker

1、生成构建Image镜像文件

Vs中右键项目->添加->Docker 支持->目标OS选择 Linux   在项目中会生成个Dockerfile文件

这个Dockerfile文件就是用来构建你项目的Image镜像的,它是一个创建当前项目镜像的所有命令的文本文件

2、将你的项目存放到Linux中

我们可以用MobaXterm 或者其他文件工具将我们的项目存放到Linux中,我们就在Linux系统的root文件下创建了一个叫ZKHK的文件用于存放我们的项目代码,然后我又单独的将Dockerfile文件单独的放在了与项目文件夹同级的ZKHK文件夹下。

3、构建项目镜像

#docker build:表示要构建镜像
#myimagename :是我们自己要构建的镜像的名称,随便我们自己取名(主要名称小写)
#dockerfile:是我们要构建的镜像需要的文件,文件名叫Dockerfile


docker build -t net6projecttest -f Dockerfile .

构建镜像的时候如果提示:

[Warning] IPv4 forwarding is disabled. Networking will not work.

则需要开启 Linux 操作系统的 IP 转发功能

临时开启: 如果你只是希望临时开启 IP 转发功能,可以使用以下命令:

sudo sysctl -w net.ipv4.ip_forward=1

永久开启: 如果你希望永久开启 IP 转发功能,需要编辑配置文件,使其在系统重启时仍然生效

1、编辑 /etc/sysctl.conf 文件

sudo nano /etc/sysctl.conf

或者

sudo vim /etc/sysctl.conf     

#vim命令打开的文件 按 i 进入编辑状态 Esc退出编辑  然后按冒号(Shift+:)输入w !sudo %进行强制保存

2、在文件末尾添加以下行,表示开启 IP 转发功能

net.ipv4.ip_forward=1

3、保存并关闭文件。Ctrl+o,可以修改文件名,Ctrl+x 保存并退出当前文件

4、使修改生效

sudo sysctl -p

现在,IPv4转发已经启用了。重新启动网络服务,你将不再收到“IPv4 forwarding is disabled”的警告消息,并且网络连接将正常工作。

使用 firewalld 或 iptables 设置转发规则: 除了开启 IP 转发功能,如果你需要进行网络地址转发,你还需要设置转发规则。你可以使用 firewalld 或 iptables 来进行设置,具体步骤因操作场景和需求而异

1、使用 firewalld

sudo firewall-cmd --add-masquerade --permanent sudo firewall-cmd --reload

2、使用 iptables

sudo iptables -t nat -A POSTROUTING -o 出口网卡 -j MASQUERADE

3、修改完成后,按下 Ctrl + O,这将会显示一个提示,询问你是否要保存已经编辑的内容。按下 Enter 键,即可确认保存 

4、确认保存后,你可以修改文件名(如果需要),然后按下 Enter 键

5、最后,按下 Ctrl + X 退出 nano 编辑器

4、根据镜像创建并运行容器

Docker容器启动之前,如果不进行端口映射,在容器外部是无法通过网络来访问容器内的网络应用和服务。因为容器中常常会运行一些网络应用和服务,如果想在容器外部通过网络来访问容器内的网络应用和服务,就需要对该容器进行端口映射,可以通过docker run命令中的-P-p选项来进行端口映射

Docker容器本身是一个独立的、隔离的环境,它自己拥有独立的IP地址。当我们创建并运行一个容器时,它内部的应用程序无法直接被主机上的其他应用访问。因此,我们需要进行端口映射,将容器内部的端口与主机的端口进行映射,这样就能够通过主机上的端口访问容器内部的应用程序了

举例:假设我们虚拟机的IP是 192.168.43.10,

我们可以通过HTTP地址(即常说的“网址”)或IP加“: 80”来访问网站,因为浏览网页服务默认的端口号都是80

我们的项目运行在Docker容器中,而容器外部是无法通过网络来访问容器的内容部网络应用和服务的,所以我们就需要将Docker容器的某个端口(如:8083)映射到主机的80端口,这样我们就可以在外部通过网址+“:8083” 来访问容器的里应用和服务了。

92.168.43.10:8083 就相当于访问主机的80端口了。

#8083:80:将容器内部的 8083端口映射到主机上的 80端口

#docker8083:容器的名称,名称随便自己取

#net6projecttest :镜像名称



docker run -itd -p 8083:80 --name docker8083 net6projecttest 

docker run -itd -p 8084:80 --name docker8084 net6projecttest 

上面就根据镜像创建了两个两个容器:92.168.43.10:8083和92.168.43.10:8084

到此这篇关于Docker部署.NET6项目的实现步骤的文章就介绍到这了,更多相关Docker部署.NET6内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker 容器日志查看和清理的实现步骤

    Docker 容器日志查看和清理的实现步骤

    在处理Docker容器的过程中,经常需要查看容器的日志输出来排查问题或者进行系统监控,本文主要介绍了Docker容器日志查看和清理的实现步骤,感兴趣的可以了解一下
    2023-11-11
  • 解决Docker容器没有vim命令的方法

    解决Docker容器没有vim命令的方法

    这篇文章主要给大家介绍了关于解决Docker容器没有vim命令的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Docker容器具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • docker部署apollo详细教程

    docker部署apollo详细教程

    这篇文章主要介绍了docker部署apollo详细教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Docker中Java基础镜像OpenJDK和OracleJDK使用方法

    Docker中Java基础镜像OpenJDK和OracleJDK使用方法

    OpenJDK是Java社区的核心项目,由全球各地的开发者共同参与开发和维护,OracleJDK在OpenJDK的基础上添加了一些商业功能和工具,这篇文章主要给大家介绍了关于Docker中Java基础镜像OpenJDK和OracleJDK使用方法的相关资料,需要的朋友可以参考下
    2024-06-06
  • Docker制作YashanDB镜像的使用方法

    Docker制作YashanDB镜像的使用方法

    本文详细讲解了如何制作YashanDB的Docker镜像,并通过实例展示了实际操作过程,特别是在跨平台应用中,Docker镜像提供了一致的环境,避免了环境差异导致的诸多问题,此外,文章还探讨了优化镜像体积、数据持久化及CI/CD集成等更深入的内容,感兴趣的可以了解一下
    2024-10-10
  • Docker容器之间数据传输的实现

    Docker容器之间数据传输的实现

    本文主要介绍了Docker容器之间数据传输的实现,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 谷歌技术人员解决Docker镜像体积太大问题的方法

    谷歌技术人员解决Docker镜像体积太大问题的方法

    这篇文章主要介绍了谷歌技术人员解决Docker镜像体积太大问题的方法,涉及虚拟机,谷歌docker镜像构建实践及构建工具bazel的介绍等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 使用 Azure Container Registry 储存镜像的问题

    使用 Azure Container Registry 储存镜像的问题

    Azure Container Registry(容器注册表)是基于 Docker Registry 2.0规范的托管专用 Docker 注册表服务。这篇文章主要介绍了使用 Azure Container Registry 储存镜像,需要的朋友可以参考下
    2021-05-05
  • Docker-compose的安装和设定详细步骤

    Docker-compose的安装和设定详细步骤

    这篇文章主要介绍了Docker-compose的安装和设定的相关资料,需要的朋友可以参考下
    2017-03-03
  • 安装Docker后如何验证是否安装成功的方式

    安装Docker后如何验证是否安装成功的方式

    这篇文章主要介绍了安装Docker后如何验证是否安装成功的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03

最新评论