Centos上部署.Net5+Docker
Centos上部署.Net5+Docker
运行环境
1、阿里云服务器CES Centos8.3
2、Net5
3、Docker
镜像使用
如操作系统为Alibaba Cloud Linux,在修改Docker源时会碰到些奇怪的问题。我个人推荐使用Centos即可。
Docker介绍及安装
1、什么是Docker?
老朱家的猪养殖场里散养了100头猪,有一天一只猪生病了,导致其他猪也生病了。老朱很头疼,于是去请教专家Docker。专家给了老朱一个猪宿舍的图纸并告诉他,可以按照图纸给每头猪搭建一个宿舍,这样就不会相互受影响了。还可以灵活把猪卖到另一个养殖场。
养殖场 == 操作系统环境
猪 == 应用程序
图纸 ==镜像
宿舍 == 容器
Docker 的好处就是将猪圈标准化、简易化、可迁移化
安装Docker
sudo yum install docker
添加DockerFile文件
1、右击启动项目,选择添加Docker支持
2、接下来你会多一个DockerFile文件,将它设置为始终复制。或者你发布后,手动粘贴到发布目录也行。
我的习惯是每次都会修改一下这个样子,看这简洁。
#运行环境描述,此处是用的Net5构建镜像
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
#复制文件到 docker容器中的app文件夹中
COPY . /app
#设置工作目录为 app 文件夹,要和上面一致哦
WORKDIR /app
#设置Docker容器对外暴露80端口
EXPOSE 80
#使用`dotnet WanAdmin.Web.Entry.dll`来运行应用程序
ENTRYPOINT ["dotnet", "WanAdmin.Web.Entry.dll"]
上传文件到服务器
此处强推MobaXterm,直接可视化创建文件夹并上传。
这是我的文件路径/var/NetCore/WanAdmin/
打包镜像
切换到文件所在路径
cd /var/NetCore/WanAdmin/
执行生成镜像的命令,镜像名称只能是小写。
#adminos 是我的镜像名称
docker build -t adminos .
查看镜像列表
docker images
Docker会根据DockerFile的描述信息来下载其他的镜像依赖,所以此处多了一个Microsoft.的镜像。
删除镜像
docker rmi 镜像ID
构建容器
构建并运行容器
docker run --name 容器名称 -d -p 指定的端口号:对应容器的端口号 镜像名称
docker run --name test -d -p 5566:80 adminos
查看容器列表
docker ps -a
删除容器
docker rm 镜像名称/ID
如图所示,报了一个Error: cannot remove container (不能删除运行中的容器),所以删之前需要先把容器停止
停止容器
docker stop 镜像名称/ID
运行容器
docker start 镜像名称/ID
运行容器后,无法访问到项目。建议先检查云服务器的出入网安全组规则,以及检查Centos是否开放这个端口。
资料文献:
[1]: https://my.oschina.net/u/3772973/blog/4969424
[2]: https://my.oschina.net/u/3772973/blog/4969424