一、环境
框架.Net5 => .net core 5 web
开发工具 visual studio 2019 版本:16.8.x
发布服务器:Linux => Centos 7.x
二、项目发布
1、发布准备
添加docker支持(Dockerfile)-> 选择Linux -> 生成Dockerfile文件
Dockerfile解读
2、源码镜像制作
2.1将源码拷贝到Centos指定目录下,并在源码总文件夹的同级目录下,复制Dockerfile文件
2.2 进入到Dockerfile同级目录,进行镜像构建
使用docker构建命令进行构建:docker build -t dockerpublish -f Dockerfile .
-t :镜像名称(必须小写) -f :Dockerfile文件 最后圆点指定dockfile文件
3、非源码挂载方式
3.1 在visual studio 中进行web项目发布,并上传文件到服务器
3.2 挂载到docker中
docker run -d -p 5001:80 -v /home/dotNet5Projects/LinuxDockerNginxPublish/LinuxDockerNginxPublish:/app --workdir /app mcr.microsoft.com/dotnet/aspnet dotnet /app/LinuxDockerNginx.dll
-p:指定物理主机5001端口映射到docker容器80端口
-v:复制物理主机中的文件到docker容器中的指定目录
--workdir:指定后续指令目录
mcr.microsoft.com/dotnet/aspnet:指定对应的基础镜像 使用dotnet命令运行项目dll
4、运行项目
docker run -itd -p 5000:80 dockerpublish
-itd:交互式后台启动
-p:指定物理主机5001端口映射到docker容器80端口
dockerpublish:镜像名称
三、docker 常见命令
docker run:docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)
docker start :启动已存在的镜像
docker stop:停止镜像
docker stop $(docker ps -q):停止所有镜像
docker images:docker中的所有镜像
docker ps -a :显示容器列表 -a 显示所有容器(默认显示正在运行)
docker pull:拉取镜像 name:tag 指定版本,默认latest
docker search:搜索的范围是官方镜像和所有个人公共镜像
docker rm :删除容器
docker rmi:删除镜像
docker rm $(docker ps -aq):删除所有停止的容器
docker exec -it 容器ID /bin/bash :进入指定id的容器