关于Docker导入导出命令及部署
打开docker软件右下角的terminal终端,先输入:cd <存放镜像的目录路径>,后导入tar镜像文件,步骤如下。
一、导入镜像文件
(1)导入由 docker save 生成的镜像 tar 文件
使用docker load命令,基本语法为docker load -i <镜像tar文件>。
例如,要从nginx_backup.tar文件加载镜像,可执行docker load -i nginx_backup.tar。如果文件是.tar.gz格式,也可以直接使用该命令加载,如docker load -i nginx_backup.tar.gz。
docker load -i <镜像文件名>.tar
docker load -i <镜像文件名>.tar.gz
(2)导入由 docker export 生成的容器 tar 文件:
使用docker import命令,基本语法为docker import <容器tar文件> (新镜像名):(新标签)。
例如,从my_container.tar文件创建一个新的镜像,并命名为my_imported_image:v1,可执行docker import my_container.tar my_imported_image:v1。
docker import <创建前的tar文件命名> <创建后的镜像文件名>
二、启动容器
使用docker run命令,有两种方式,基本语法为:
①docker run -d --name <容器名称> -e "SPRING_CONFIG_LOCATION=<配置文件>" -p 宿主机端口:容器内端口 <指定启动的镜像>
其中-d是指后台运行容器的意思。
②docker run -d --name <容器名称>
三、查看容器
查看容器是否在运行:docker ps | grep <命好名的镜像名>
四、停止容器
停止容器:docker stop <镜像名>
五、重启容器
重启容器:docker restart mbdf-veauth
六、查看容器日志
查看容器日志(用来排查启动失败问题):docker logs -f <容器名>(-f 表示实时跟踪日志)
如果启动失败,优先检查两点:
① 配置文件是否存在(是否挂载正确);
② 端口(例如端口号为8888 )是否被宿主机其他程序占用(可用 netstat -ano | findstr 8888 查看 Windows 端口占用)。
七、把宿主机的文件传到容器里
先介绍一下docker cp命令,docker cp 的作用是:打破宿主机和容器的文件隔离,实现双向文件传输,常见场景包括:
- 给容器传配置文件(如
application.properties、config.json); - 从容器里导出日志文件(如
logs/app.log)用于排查问题; - 把容器内生成的数据文件(如数据库备份、报表)拉到宿主机保存;
- 向容器传递依赖包、脚本文件(如
shell脚本、jar包)。
宿主机 → 容器(传文件到容器)
docker cp -r <宿主机文件/目录路径> <容器名或容器ID:容器内目标路径>
假设宿主机 D:\config 目录下有 application.properties,要传到容器内的 /app/config 目录:
docker cp -r D:\config\application.properties <容器名>:/app/config/
容器 → 宿主机(从容器拉文件)
docker cp -r <容器名或容器ID:容器内文件/目录路径> <宿主机目标路径>
假设容器内 /app/logs/ 目录有 app.log 日志文件,要拉到宿主机 D:\logs 目录:
docker cp -r <容器名>:/app/logs/app.log D:\logs\
八、镜像导出tar文件
1.首先通过 docker images 查看本地镜像列表,确认要导出的镜像信息
2.导出单个镜像(指定 “镜像名:标签”)
将 nginx:latest 镜像导出到 Windows 宿主机的 D:\docker-backups 目录,文件名设为 nginx-latest.tar:
# Windows 环境(路径用反斜杠 \ 或正斜杠 / 均可)
docker save -o D:\docker-backups\nginx-latest.tar nginx:latest
# Linux/macOS 环境(路径用正斜杠 /)
docker save -o /home/user/docker-backups/nginx-latest.tar nginx:latest
docker save 导出的 tar 文件未压缩,可结合 gzip 工具压缩(需先安装 gzip,Windows 可通过 Git Bash、WSL 或 7-Zip 实现):
# Linux/macOS 直接用管道压缩(生成 .tar.gz 压缩文件)
docker save nginx:latest | gzip > /home/user/docker-backups/nginx-latest.tar.gz
# Windows(通过 Git Bash 或 WSL 执行)
docker save nginx:latest | gzip > /d/docker-backups/nginx-latest.tar.gz
九、构建镜像
docker在当前含有Dockerfile的文件夹下用 Dockerfile 构建一个名为 123/456:0.2.0.4 的镜像。
在该文件夹路径输入cmd,进入终端,输入如下命令:
docker build -t <仓库名>/<镜像名>:<版本号> .
一般这个时候可能需要梯子啥的,然后打包完成后,输入:
docker save -o <tar包名称>.tar <镜像名称>:<版本号>
回车后就能在Dockerfile文件夹下看到刚保存的tar包镜像了。
十、其他
1.lusrmgr.msc 是 Windows 系统中用于管理本地用户和组的内置工具
2.jar包解压:(以example包为例)在解压的文件路径下用管理员身份打开cmd终端
jar -xvf example.jar
3.打开镜像出现:
(HTTP code 500) server error - driver failed programming external connectivity on endpoint XXX时说明该端口已经被占据,解决方法如下:
1.Win+R打开命令窗口输入如下命令,找到对应镜像的端口号
netstat -ano
2.找到对应端口号后面的数值,输入如下命令终止该任务
taskkill /f /pid <对应数值>
数值位置如下图所示:

更多推荐


所有评论(0)