整体示例
NodeJS
Dockerfile
1 | LABEL maintainer="psvmc <psvmc@outlook.com>" |
如果build_debug.sh
构建的时候进度不动,可以把
1 | RUN cd /data/school_live_record/record && chmod +x /data/school_live_record/record/build_debug.sh && /data/school_live_record/record/build_debug.sh |
替换为
1 | ADD agorasdk.node /data/school_live_record/record/agorasdk.node |
把别的服务器上容器内的agorasdk.node
放在Dockerfile
同级
Python3.8
方式1
1 | # Pull base image |
方式2
1 | # Pull base image |
Python3.9
1 | # Pull base image |
构建运行
构建
1 | docker build -t psvmc/z-card-recognize . |
如果构建一直失败可以禁用缓存
1 | docker build --no-cache -t psvmc/z-card-recognize . |
运行
1 | docker run -d -p 8000:8000 --name z-card-recognize --restart=always psvmc/z-card-recognize |
查看启动日志
1 | docker logs z-card-recognize |
删除
1 | docker stop z-card-recognize |
删除中间镜像
在 Docker 中,有时候会存在一些没有标签的镜像(即 REPOSITORY
和 TAG
都是 <none>
的镜像),这些镜像通常是构建过程中产生的中间镜像或者是没有正确打标签的镜像。
删除这些镜像可以帮助清理 Docker 环境并减少磁盘空间占用。
查看所有镜像
首先,使用以下命令查看所有镜像:
1 | docker images -a |
您会看到类似以下的输出:
1 | REPOSITORY TAG IMAGE ID CREATED SIZE |
删除所有 <none>
镜像
您可以使用以下命令删除所有 REPOSITORY
和 TAG
都是 <none>
的镜像:
方法 1:使用 docker rmi
1 | docker rmi $(docker images -f "dangling=true" -q) |
解释:
docker images -f "dangling=true"
:过滤出所有没有标签的镜像(即 dangling 镜像)。-q
:只显示镜像的 ID。docker rmi
:删除指定 ID 的镜像。
方法 2:使用 docker image prune
1 | docker image prune -f |
解释:
docker image prune
:删除未使用的镜像。-f
或--force
:强制执行,不需要确认。
注意事项
docker image prune -f
会删除所有未被容器使用的 dangling 镜像,因此请确保没有其他容器在使用这些镜像。- 如果您只想删除特定镜像,可以使用镜像的 ID 直接删除:
1 | docker rmi <IMAGE_ID> |
其他清理操作
如果您需要清理更多未使用的 Docker 资源(如容器、网络、卷等),可以使用以下命令:
清理所有未使用的容器、网络、卷和镜像
1 | docker system prune -f |
清理未使用的卷
1 | docker volume prune -f |
通过这些步骤,您可以有效地清理 Docker 环境中的 <none>
镜像和未使用的资源,释放磁盘空间。