前言:
所有文章免费阅读,请支持免费精神,为我评论和点赞。
前提:
本文的前提是你做好了dockerfile文件,允许一键生成镜像了。
一、生成docker镜像
在你的后端项目根目录下,执行命令生成镜像。
docker save -o zsmadmin.tar zsmadmin
dir zsmadmin.tar


二、在Ubuntu虚拟机中部署步骤:
1. 首先传输镜像文件到Ubuntu虚拟机
需要将 D:\yangyong\code\ZsmAdmin\ZsmAdmin_v1\ZsmAdmin\zsmadmin.tar 文件传输到Ubuntu虚拟机。可以使用以下方法之一:
方法1:使用SCP命令(在Windows PowerShell中执行)
scp D:\yangyong\code\ZsmAdmin\ZsmAdmin_v1\ZsmAdmin\zsmadmin.tar
username@ubuntu_ip:/home/username/
(将 username 和 ubuntu_ip 替换为您的实际用户名和IP地址)
请注意上面这个提示,我一开始纠结于用root用户,上传到/home/root目录。 死都不成功,
后面查证发现,压根没有/home/root这个目录。 把username部分替换成yy就上传成功了,命令如下:
scp D:\yangyong\code\ZsmAdmin\ZsmAdmin_v1\ZsmAdmin\zsmadmin.tar yy @192.168.174.133:/home/yy/

方法2:使用FTP工具 使用FileZilla或WinSCP等工具将 zsmadmin.tar 上传到Ubuntu虚拟机
这个方法前提是你的ubuntu开启了FTP服务,我没有测试这个。
2. 在Ubuntu虚拟机的SSH连接中执行以下命令:
bash
# 检查Docker是否正常运行,如果不正常,就想办法调试正常。
sudo systemctl status docker
# 加载Docker镜像,先要用cd命令进入镜像文件所在目录 如 /home/yy
sudo docker load -i zsmadmin.tar
# 验证镜像是否加载成功
sudo docker images
# 停止并删除已存在的容器(如果有)
sudo docker stop zsmadmin-container
sudo docker rm zsmadmin-container
# 启动新容器,映射5005端口
sudo docker run -d -p 5005:5005 --name zsmadmin-container zsmadmin
# 检查容器状态
sudo docker ps
# 查看容器日志
sudo docker logs zsmadmin-container
我的命令执行截图如下:




3. 验证部署是否成功
测试端口是否监听
sudo netstat -tlnp | grep 5005
测试API是否可访问
或者直接到宿主机上浏览器访问,用你的虚拟机IP加5005端口验证。


4. 如果需要从外部访问
确保Ubuntu防火墙允许5005端口:
如果使用UFW防火墙
sudo ufw allow 5005/tcp
sudo ufw reload
或者如果使用firewalld
sudo firewall-cmd --permanent --add-port=5005/tcp
sudo firewall-cmd --reload
5. 常用管理命令
查看运行中的容器
sudo docker ps
查看所有容器(包括停止的)
sudo docker ps -a
查看容器日志
sudo docker logs zsmadmin-container
实时查看日志
sudo docker logs -f zsmadmin-container
停止容器
sudo docker stop zsmadmin-container
启动容器
sudo docker start zsmadmin-container
重启容器
sudo docker restart zsmadmin-container
删除容器
sudo docker rm zsmadmin-container
删除镜像
sudo docker rmi zsmadmin