Docker的文档是真难翻。每次要查一个参数都要在几十页手册里找半天。我把日常开发最常用的命令整理在一张表里,配上一两句说明。建议存书签,用到的时候Ctrl+F。
镜像相关
docker pull nginx:alpine —— 拉镜像。alpine版比标准版小十倍,能用alpine尽量用。
docker images —— 列出本地所有镜像。加--filter "dangling=true"可以只看悬空镜像(
docker rmi IMAGE_ID —— 删镜像。删不掉的时候加-f强制删。
docker build -t myapp:v1 . —— 构建镜像。注意最后的点表示当前目录是构建上下文。
容器相关
docker run -d --name web -p 8080:80 nginx:alpine —— 最常用的起容器命令。-d后台,--name取名,-p端口映射。
docker ps —— 看运行中的容器。加-a看所有(包括已停止的)。
docker stop CONTAINER —— 停容器。
docker rm CONTAINER —— 删容器。加-f强删。
docker exec -it CONTAINER sh —— 进容器内部。alpine镜像用sh,ubuntu用bash。
docker logs -f CONTAINER —— 实时看容器日志。加--tail 100只看最近100行。
docker-compose相关
绝大多数生产环境都用docker-compose管理多容器。几个高频命令:
docker-compose up -d —— 后台启动所有服务(在docker-compose.yml所在目录执行)。
docker-compose down —— 停止并删除所有服务。
docker-compose restart web —— 重启单个服务。
docker-compose logs -f web —— 看单个服务的日志。
docker-compose ps —— 看当前项目容器状态。
清理相关——每天省几G空间
docker system df —— 看Docker占了多少磁盘。我刚查了一下,开发机Docker占了23G,其中60%是悬空镜像和停止的容器。
docker system prune —— 一键清理所有无用资源(停止的容器、悬空镜像、未使用的网络)。加-a连未使用的镜像一起删。
我的习惯是每周五下午跑一次docker system prune -f,基本能腾出5-10G空间。
几个实用组合
停掉所有容器:docker stop $(docker ps -q)
删掉所有停止的容器:docker container prune -f
看容器占用的资源(CPU/内存):docker stats
导出镜像:docker save -o myapp.tar myapp:v1
导入镜像:docker load -i myapp.tar
一个踩坑记录
docker-compose的卷(volume)默认不会随docker-compose down一起删除。所以你删了服务重建,老数据还在——这是特性不是bug,但很容易忘掉。如果需要彻底清干净:docker-compose down -v,注意-v会把数据卷也删了。
另一个坑:docker run的时候没加--restart=always,服务器重启后容器不会自动启。补一句:docker update --restart=always CONTAINER。
还木有评论哦,快来抢沙发吧~