Linux下用Docker部署.net8和Vue3前后端分离项目
一:.net8后端部署
1.添加Dockerfile文件,并选择始终复制选项
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base USER root WORKDIR /app EXPOSE 8080 COPY . . ENTRYPOINT ["dotnet", "API.dll"]
2.项目发布配置

3.上传包含Dockerfile的发布文件,然后构建Docker镜像
docker build -t api . //api为镜像名称 .代表当前目录下dockerfile文件

4.将docker镜像拉起来
docker run -d -p 8001:8082 api //8080为项目中指定端口,8001为映射后接口访问端口
5.查看镜像拉起来后的服务

6.后续操作命令
docker stop 371 //停止容器Id为372的服务
docker rm 371 //停止容器Id为372的服务
docker images //查看镜像
docker image rm api //删除构建的名为api镜像
docker logs 371 查看服务产生的日志
docker exec -it 371 /bin/bash 进入容器Id为371的服务
二.vue3前端部署
1.添加Dockerfile文件
# 基于Nginx的基础镜像 FROM nginx:alpine # 将dist目录中构建的文件复制到Nginx的服务目录 COPY /dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf # 暴露80端口供外部访问 #EXPOSE 80 # 启动Nginx,并持续运行 CMD ["nginx", "-g", "daemon off;"]
2.添加nginx.conf文件,用于配置特殊项,如重定向,地址转发,二级目录等
server { listen 80; location /first/two { alias /usr/share/nginx/html; try_files $uri $uri/ /first/two/index.html; } }
3.前端打包后复制Dockerfile和nginx.conf文件到如下目录

4.构建并启动前端vue3镜像
docker build -t web . //web为镜像名称 .代表当前目录下dockerfile文件
docker run -d -p 9999:50 api //80为nginx中指定端口,9999为映射后网站访问端口
三:其他命令
1.开机重启:使用命令 --restart=always参数,它能确保在Docker守护进程重启时自动重启容器
docker run --restart=always -d -p 8001:8082 --name api
2.构建镜像失败
docker build -t api . --network=host
3.下载镜像
docker save -o myimage.tar api 镜像api下载
4.使用docker load加载镜像先删除本地的nginx镜像:
docker rmi api
然后运行命令,加载本地文件:
docker load -i myimage.tar
5.设置国内镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://ox288s4f.mirror.aliyuncs.com", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://mirror.ccs.tencentyun.com" ] } EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
或者
sudo service docker restart
6.文件夹挂载
docker run -v /home/user/app/wwwroot:/app/wwwroot api
7.文件夹权限
chmod -R 777 home/api 给映射目录设置权限
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号