前言:
免费文章请抬贵手点赞评论一下谢谢!文章本可以免费的,但是白嫖的大佬们都舍不得点赞评论一下。如果点赞评论跟阅读量不成比例,我可能很快就设置为VIP可读了。
一、系统环境:
1、Alibaba Cloud Linux3 安装了docker-ce
2、本机windows系统安装了docker desktop,支持生成镜像
3、给系统安装设置了sftp功能服务。如果不会可以跳转到下面这个链接,看我最后的一个大步骤内容(五、配置 sftp)。
Alibaba Cloud Linux 3.2104 LTS 新购服务器基础配置
二、使用Shell命令生成镜像。
1、进入你的项目根目录,然后按 Shift+鼠标右键 打开 powershell。

2、执行命令生成镜像
docker build -t zsmadmin -f ZsmAdmin.Web.Entry\Dockerfile .
注意,最后有一个点, 不能丢了,这个点表示文件生成到当前目录下。
-t zsmadmin 是给镜像指定的名称(标签)t=tag
-f ZsmAdmin.Web.Entry\Dockerfile 是指定项目目录下的dockerfile脚本文件 f=file
3、保存镜像文件为zsmadmin.tar,保存到你的shell当前目录。
docker save -o zsmadmin.tar zsmadmin
dir zsmadmin.tar

三、镜像文件部署到linux的docker
1、上传镜像文件到服务器FTP目录

2、检查docker是否正常。
使用命令检查,我看到的状态内容不止一页,如果你翻不了页或者不想看更多,按 q 键可以退出状态内容显示:
sudo systemctl status docker

3、停止并删除已存在的容器(如果有)
注意,命令后面的容器名 zsmadmin-container,也可以是容器ID,镜像操作也可以是ID,我觉得ID会更准确。
#查看容器列表
sudo docker ps -a
停止并删除已存在的容器(如果有)
sudo docker stop zsmadmin-container
sudo docker rm zsmadmin-container
#删除旧镜像(如果有)
sudo docker rmi 镜像ID

第一次部署没容器 :docker ps -a

4、加载镜像文件
加载Docker镜像,先要用cd命令进入镜像文件所在目录 如 /home/yy
sudo docker load -i zsmadmin.tar
如果上面的方式不行,那就强行指定tar文件路径
用 sudo 但指定完整路径
sudo docker load -i /mnt/sftp/uploads/zsmadmin.tar
验证镜像是否加载成功
sudo docker images

5、启动新容器,映射端口
zsmadmin-CT1为容器名称,
启动新容器,映射5005端口
sudo docker run -d -p 5005:5005 --name zsmadmin-CT1 zsmadmin
检查容器状态
sudo docker ps
查看容器日志
sudo docker logs zsmadmin-CT1

日志内容其实可以看出来你的应用程序是否执行成功了,比如我的就失败了,提示数据库连接失败了,那就只能修改数据库连接配置,从生成镜像重新开始了。 下面是成功的截图:

6、web浏览器验证后端部署是否成功
如果上面的都成功了,浏览器地址访问不了,有可能是web站点映射的端口没有在安全组的访问规则配置放行,这个就不重复解释了。
