大佬教程收集整理的这篇文章主要介绍了从零实操基于WSL2 Docker部署Asp.Net Core项目,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Windows10开始已经有WSL、WSL2
去年在笔记本上捣鼓过WSL2,但也只是打开安装完后打了下几行命令尝个鲜,没有进行过后续跟开发有关的操作
前两天把家里电脑系统升级到Windows 11,新系统感觉良好,抽空再次尝试下WSL2,顺便记录下完整的项目部署流程
WSL:适用于 Linux 的 Windows 子系统。
适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。
WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。
WSL官方教程:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
Hyper-V说明:https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/about/
wsl -l
wsl --set-default-version 2
wsl --set-version Ubuntu-20.04 2
Windows环境下可以去Docker官方下载Docker Desktop进行安装,最新版本已经支持使用WSL2运行,也可以在Ubuntu下以Linux传统方式安装Docker(自行某度)
Docker的镜像默认保存路径在:C:Users你的用户名ApPDAtaLocalDockerwsldata 长期使用镜像多了,C盘就会吃紧了,可以迁移目录到其他盘
wsl --shutdown
wsl --export docker-desktop-data D:Dockerwsldatadocker-desktop-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data D:Dockerwsldata D:Dockerwsldatadocker-desktop-data.tar --version 2#参数说明-version 2 : 指定WSL版本为2
netsh winsock reset
报错原因:https://zhuanlan.zhihu.com/p/151392411如果重启后镜像默认路径又会恢复到原路径,需要重新弄一遍上面所有步骤,囧
直接在Ubuntu的命令下使用docker命令安装组件
docker pull nginx --拉取Nginx最新镜像 #此处省略拉取镜像过程中的几十行命令 #.... #.... docker run --name nginx-local -p 8080:80 -d nginx --启动Nginx容器 #参数说明 --name nginx-local:设置容器名称 -p 8080:80:端口进行映射,将本地 8080 端口映射到容器内部的 80 端口 -d:设置容器在在后台一直运行 nginx:镜像名或标签名
浏览器中输入 http://localhost:8080
docker pull mysql --拉取MySQL最新镜像 #此处省略拉取镜像过程中的几十行命令 #.... #.... docker run --name mysql-local -p 3306:3306 -e MYSQL_ROOT_password=123456 -d mysql #参数说明 --name mysql-local:设置容器名称 -p 3306:3306:端口进行映射,将本地 3306端口映射到容器内部的 3306 端口-e MYSQL_ROOT_password=123456 :设置mysql的登录密码,默认帐号名为root -d:设置容器在在后台一直运行 mysql:镜像名或标签名
测试连接MySQL
public void Configureservices(IserviceCollection services) { services.AddHealthchecks(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseHealthchecks("/health"); }
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc/timezone
docker build -f DockerApi/Dockerfile -t docker-api . --注意结尾最后还有个点#此处省略构建镜像过程中的几十行命令 #.... #....
#参数说明 -f DockerApi/Dockerfile : 指定Dockerfile文件路径,如果Dockerfile已经在当前定位的目录下就不用特别指定了 -t docker-api : 设置镜像标签为docker-api,标签名自定义 . :构建镜像的上下文路径#构建完成后查看镜像docker images
docker run --name docker-api -it -p 5000:80 docker-api
#参数说明
--name docker-api :设置容器名称
-it :i-交互式操作,t-终端
-p 5000:80 :端口进行映射,将本地5000端口映射到容器内部的80端口
docker-api :镜像名或标签名
以上就是Docker上部署Asp.Net Core的所有实操步骤,如果按教程一步步来,应该是没有多大问题的
作者:Harry
原文出处:https://www.cnblogs.com/simendancer/articles/14967916.html
有些文本描述和图片源自网络,如有侵犯请私信告知
以上是大佬教程为你收集整理的从零实操基于WSL2 Docker部署Asp.Net Core项目全部内容,希望文章能够帮你解决从零实操基于WSL2 Docker部署Asp.Net Core项目所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。