Skip to content

构建镜像

bash
docker build -t user-manage:v1.0 .

运行容器镜像

bash
docker run --rm -d -p 8089:80 --name k8s-installer-test \
  -v ~/gitlab/k8s-installer-ui/dist:/usr/share/nginx/html \
  -v ~/default.conf:/etc/nginx/conf.d/default.conf nginx
  • --rm 容器停止后自动删除
  • -d 后台运行
  • -p 8089:80 前者本地端口,后者镜像暴露端口
  • --name 指定容器名称
  • -v 将本地文件挂入容器

导出镜像

bash
docker save user-manage:latest > ~/Downloads/usermanage.tar

压缩成 gz 可以显著减小文件体积:

bash
docker save myimage:latest | gzip > myimage_latest.tar.gz

导入镜像

bash
docker load < myimage_latest.tar.gz

或使用 docker load --input xxx.tar,命令会保留导出时的 repository/tag。

打标签并推送

bash
docker tag user-manage:latest registry.example.com/fe/user-manage:2024-12-03
docker push registry.example.com/fe/user-manage:2024-12-03

推送前需 docker login 到目标仓库。

常用排查命令

bash
docker ps -a                # 查看所有容器
docker logs -f <name>       # 跟随日志
docker inspect <name>       # 查看容器配置
docker exec -it <name> sh   # 进入容器

清理空间

bash
docker image prune          # 删除 dangling 镜像
docker image prune -a       # 删除未被容器使用的镜像
docker container prune      # 删除已退出容器

生产环境慎用 prune -a,执行前请确认没有依赖。

传输镜像归档

上传到服务器:

scp ~/Downloads/usermanage.tar root@172.16.60.99:/tmp/

从服务器下载到本地:

scp -r caas-aio:~/tmp/origin-web-console.tar ~/Downloads/test/

上传后在服务器执行 docker load < /tmp/usermanage.tar && docker images 即可确认镜像已经导入。

重新打标签

docker tag user-manage:latest docker.io/user-manage:latest

进入容器

docker exec -it 73bee1a2a355 /bin/bash

若镜像较小可改用 /bin/sh

查看镜像元数据

docker inspect <image-id>

常用来确认 commit-id 或环境变量等信息。

删除 dangling 镜像

遇到 no space left on device 时,先删除悬空镜像:

docker rmi $(docker images | grep '^<none>' | awk '{print $3}')

Copyright ©2025 moweiwei