1、项目中添加docker支持,并编写Dockerfile文件,文件格式如下
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
COPY . /app
EXPOSE 8080
ENTRYPOINT ["dotnet", "MJB.EAS.ExpressTradeWebApi.dll"]
2、将发布好的文件夹拷贝到linux服务器,比如放置的位置为 /www/expresswebapi1.1
3、进入到/www/expresswebapi1.1目录,执行如下命令构建docker镜像文件
cd /www/expresswebapi1.1
docker build -t expresswebapi1.1 . //最后面有个点号不要忽略,代表要build的内容在当前目录
4、运行docker,开启一个镜像实例
docker run -it -p 8080:80 expresswebapi1.1
5、进入/退出容器实例
进入: docker exec -it s23432545 /bin/bash //s23432545为实例ID,通过docker ps 命令查看
退出: exit
6、强制删除docker镜像和相关的镜像实例
docker image rm -f 2dd4343sd //-f强制删除
7、镜像导出与导入
导出: docker save 2d43dlow8 > /dockerdata/expresswebapi-1.0.tar.gz
导入: docker load < /dockerdata/expresswebapi-1.0.tar.gz
8、docker目录挂载
docker run -it -p 8080:80 -v /root/app/expresswebapi:/app/Logs --privileged=true expresswebapi1.1
-it 创建一个交互式的容器
-p 映射端口8070 本机的端口 映射的容器的端口
-v 挂载目录/root/app/expresswebapi 本地目录 /app/Logs容器目录,在创建前容器是没有/app/Logs目录的,docker 容器会自己创建
--privileged=true 关闭安全权限,否则你容器操作文件夹没有权限
其他:
dotnet run运行web程序在指定地址端口: dotnet run --urls="http://*:5005"