ASP.NET Core3.1在CentOS8打包Docker镜像

dockerfile文件--=dockerfile=============================================================FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS baseCOPY . /publishWORKDIR /publish EXPOSE 8...

dockerfile文件
--=dockerfile=============================================================
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
COPY . /publish
WORKDIR /publish   
EXPOSE 80
CMD ["dotnet", "test.dll"]
--==============================================================

--=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 5000

#复制文件到工作目录
COPY . .
 
#ENV :配置系统环境变量,比如程序环境环境等在这里配置(开发、预发、线上环境)
#这里是配置程序运行端口,如果程序不使用默认的80端口这里一定要设置(程序运行端口)
ENV ASPNETCORE_URLS http://+:5000

#设置时间为中国上海,默认为UTC时间
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

#启动程序
ENTRYPOINT ["dotnet", "DotNetCore.API.dll"]
--==============================================================


一、CentOS8安装Docker

1.设置存储库(用于从存储库安装和更新Docker)
$ sudo yum install -y yum-utils

$ sudo yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo

2.安装Docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
注:如果出现冲突的软件包则后面加上 “--allowerasing” 替换

3.启动Docker
sudo systemctl start docker

4.设置开机自启动
sudo systemctl enable docker

5.查看Docker版本
docker --version
docker version  注:查看完整版本信息

其它Docker常用命令:
--卸载旧版本命令:
sudo yum remove docker                   docker-client                   docker-client-latest                   docker-common                   docker-latest                   docker-latest-logrotate                   docker-logrotate                   docker-engine


二、打包Docker镜像并运行容器

--构建docker镜像
docker build -t test .    注:test为自定义的镜像名称

--查看构建的镜像
docker image ls 

--创建并运行容器
docker run --name testapi -d -p 5001:80 test    注:testapi为自定义的容器名称,5001为外部端口与内部容器端口映射,test为镜像名称

--查看容器运行情况
docker ps -a


三、其它情况
如果发现请求不了,查看是否下面两种情况:

 1、对外映射的端口没开启。
 --查询端口号XXX 是否开启
firewall-cmd --query-port=XXX/tcp  
--开启端口
firewall-cmd --zone=public --add-port=XXX/tcp --permanent
--重启防火墙
firewall-cmd --reload


2、创建运行容器时监听的端口弄错了:
--查看容器运行日志
docker logs 容器ID

其它常用命令:
--根据镜像ID删除镜像
docker rmi 75835a67d134

--查看容器运行日志
docker logs  容器名称/容器ID
--停止运行容器
docker stop 容器名称/容器ID
--删除容器
docker rm 容器名称/容器ID
--重启容器服务
systemctl restart docker




 

本文标题为:ASP.NET Core3.1在CentOS8打包Docker镜像