打开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.propertiesconfig.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 <对应数值>

数值位置如下图所示:

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐