Visual Studio 中正常发布项目
在发布文件中创建Dockerfile文件,没有后缀
Dockerfile文件内容
#引入镜像,低版本 docker 去掉 AS base #换成别人做的阿里镜像 #FROM registry.cn-hangzhou.aliyuncs.com/newbe36524 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base #配置工作目录 相当于cd WORKDIR /app #暴露容器端口,此端口与程序运行路径一致 EXPOSE 5500 #复制文件到工作目录 COPY . . #ENV :配置系统环境变量,比如程序环境环境等在这里配置(开发、预发、线上环境) #这里是配置程序运行端口,如果程序不使用默认的80端口这里一定要设置(程序运行端口) ENV ASPNETCORE_URLS http://+:5500 #设置时间为中国上海,默认为UTC时间 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone #容器中使用 ["dotnet","系统启动的dll"] 来运行应用程序 ENTRYPOINT ["dotnet", "NetCoreWebApi.dll"]
cd 到 Dockerfile 文件所在目录 执行创建镜像命令
docker build -t test:v1 . # test ---- 镜像名称 # v1 ---- 镜像版本 注意:最后面的 . 不能省略 .前面还有一个空格
查看创建的镜像
docker images
创建容器
docker run --name test -d -p 8001:5500 test:v1 # --name test 容器名称 # -d 设置为守护线程 在后台运行 # -p 8001:5500 端口映射: 8001:外部访问端口 5500:容器对外端口 # test:v1 创建容器的镜像
访问
http://192.168.209.129:8001/api/verify
The type initializer for 'Gdip' threw an exception的问题及处理方式
1、docker exec -it 容器ID /bin/sh 进入容器 2、执行 apt-get update 3、执行 apt-get install -y libgdiplus 4、创建符号连接 ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll 5、重启容器 docker restart 容器ID