构建镜像
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}')