[Linux之旅一] .NET Core 2.2部署到Docker中

摘要:
运行查看镜像dockerimages第七步,创建本演示项目的容器,使用如下命令:备注:创建容器,其中前一个apiweb是容器名后一个netcorewebtests是上一步的镜像名。请使用如下命令:dockerrun--name=apiweb-p80:80-dnetcorewebtests或者dockerrun--name=apiweb-p宿主ip:5001:80-dnetcorewebtests建议用后面一个命令!附上常用基础命令:1.查看已退出容器:dockerps-a2.查看所有镜像:dockerimages3.删除某个镜像:dockerrmi镜像ID4.删除某个容器:dockerrm容器ID5.查看正在运行容器:dockerps

第一步,使用VS2017或者VS2019创建.NET Core 2.2或3.1的项目,如下图:

[Linux之旅一] .NET Core 2.2部署到Docker中第1张

在创建项目的时候记得勾选Docker支持,这样会自动创建Dockerfile文件,这个文件用于构建Docker镜像;(补充:镜像运行在容器中)

第二步,编辑Dockerfile文件,本人初学不便讲解它的用法,本人按照以下方式进行编辑:

FROM microsoft/dotnet:2.2-aspnetcore-runtime    
COPY. /netcorewebtests    
WORKDIR/netcorewebtests
EXPOSE 80 
ENTRYPOINT ["dotnet", "NetCoreWebTests.dll"]   

第三步,在Linux中创建即将部署网站的目录(本人在/var目录下创建了www目录,再在www目录创建本演示项目的目录),使用以下命令

mkdir /var/www/netcorewebtests]

第四步,发布项目,并使用WinSCP将发布的项目文件上传到第三步创建的目录中

第五步,拉取项目依赖的基础镜像,例如本演示项目是.net core2.2开发,则拉取.net core 2.2的镜像,如下图:

docker pull microsoft/dotnet:2.2-aspnetcore-runtime 

第六步,创建本演示项目的镜像,使用如下命令:

docker build -t netcorewebtests .
备注:netcorewebtests 是创建镜像的名称,这个命令会根据当前目录下dockerfile配置文件,进行打包。运行查看镜像 docker images

第七步,创建本演示项目的容器(镜像运行在容器中),使用如下命令:

备注:
创建容器,其中前一个apiweb是容器名 后一个netcorewebtests是上一步的镜像名。
--name:指定容器名称;
-p:指定容器端口,是进行宿主和容器之间端口的映射,(-p 宿主端口:容器端口);
-d:指定容器后台运行,这样容器就会一直运行,即使关掉终端窗口。

请使用如下命令:
docker run --name=apiweb -p 80:80 -d  netcorewebtests
或者
docker run --name=apiweb -p 宿主ip:5001:80 -d  netcorewebtests
建议用后面一个命令!

完成!

附上常用基础命令:
1.查看已退出容器:docker ps -a
2.查看所有镜像:docker images
3.删除某个镜像:docker rmi 镜像ID
4.删除某个容器:docker rm 容器ID
5.查看正在运行容器:docker ps

免责声明:文章转载自《[Linux之旅一] .NET Core 2.2部署到Docker中》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL-死锁查询Springcloud之gateway配置及swagger集成下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux Tips: 使用dd制作Ubuntu系统的安装盘

找到U盘的分区 sudo fdisk -l 卸载U盘 # 假设U盘的挂载是/dev/sdc1 sudo umount /dev/sdc1 格式化U盘 # 假设U盘是/dev/sdc,注意这里是“sdc”不带“1” sudo mkfs.vfat -I /dev/sdc 写入镜像 # 注意这里也是“sdc”不带“1” sudo dd if...

解决'androidx.arch.core:core-runtime' has different version for the compile (2.0.0) and runtime (2.0.1)

先说原因,我们引用的包版本不同产生了冲突,所以编译不通过。解决的办法是在引用的时候排除一个版本,只留一个版本。 解决过程: 先找出哪些库引用了相同的库,仅仅是版本不同。 gradle app:dependencies app换成你工程中的模块名,它会生成一个依赖列表,我们要做的是分析一下这个列表,比如我的引用就是: dependencies { i...

Linux端口转发的几种常用方法

0x00 背景   端口转发是一个常用的功能,不管是在服务器运维还是在***领域,都需要用到。在近期遇到一个问题就是一个服务的端口不能进行配置,但是由于出口硬件防火墙的原因,为了不修改硬件防火墙的策略,所以只能在本地做端口转发。因此尝试和寻找了以下的几种方法。 0x01 iptables和firewall iptables   iptables是我第一个...

鸟哥的linux私房菜——第20章 启动流程、模块管理与loader

20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以读入引导加载程序(boot loader)了,引导加载程序指定使用那个内核文件来启动,并实际加载内核到内存中解压缩与执行,此时内核就能够在内存中活动,并检测所...

Linux命令文件查看过滤

Linux命令篇 1.查看一个文件的后100行的命令: tail -n 100 Linux下查看文件前几行一般用head -n xx,查看后面几行用tail -n xx。除此之外,还有:     tail -n +1000:从1000行开始显示,显示1000行以后的 如果要查看这个文件中间的某几行,命令如下:     cat input_file | he...

docker+Nexus Repository Manager 搭建私有docker仓库

使用容器安装Nexus3 1.下载nexus3的镜像: docker pull sonatype/nexus3 2.使用镜像启动一个容器: docker run -d -p 8081:8081 -p 5000:5000 --name nexus3 -v /nexus-data:/nexus-data/ --restart=always sonatype/n...