前言#
Docker 是现代 DevOps 工作流中不可或缺的容器化工具。本文整理了日常工作中最常用的 Docker 命令,方便快速查阅。
镜像管理#
查看镜像#
docker images
docker image ls
搜索镜像#
docker search nginx
拉取镜像#
docker pull nginx:latest
docker pull nginx:1.21
删除镜像#
docker rmi nginx:latest
docker rmi $(docker images -q) # 删除所有镜像
导出/导入镜像#
docker save -o nginx.tar nginx:latest
docker load -i nginx.tar
容器管理#
查看容器#
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器
docker container ls # 同 docker ps
创建并启动容器#
docker run -d --name nginx -p 80:80 nginx:latest
docker run -it --name centos centos:7 /bin/bash
启动/停止/重启容器#
docker start nginx
docker stop nginx
docker restart nginx
进入容器#
docker exec -it nginx /bin/bash
docker attach nginx
查看容器日志#
docker logs nginx
docker logs -f nginx # 实时查看
docker logs --tail 100 nginx # 查看最后100行
查看容器详情#
docker inspect nginx
查看容器资源使用#
docker stats
docker stats nginx
删除容器#
docker rm nginx
docker rm -f nginx # 强制删除运行中的容器
docker rm $(docker ps -aq) # 删除所有容器
数据卷管理#
创建数据卷#
docker volume create mydata
查看数据卷#
docker volume ls
docker volume inspect mydata
删除数据卷#
docker volume rm mydata
docker volume prune # 删除未使用的数据卷
挂载数据卷#
docker run -d -v mydata:/data nginx
docker run -d -v /host/path:/container/path nginx
网络管理#
查看网络#
docker network ls
docker network inspect bridge
创建网络#
docker network create mynet
docker network create --driver bridge mynet
连接容器到网络#
docker network connect mynet nginx
断开容器网络#
docker network disconnect mynet nginx
删除网络#
docker network rm mynet
系统清理#
清理退出状态的容器#
docker rm $(docker container ls -f "status=exited" -q)
清理未使用的镜像#
docker image prune
docker image prune -a # 删除所有未使用的镜像
一键清理#
docker system prune
docker system prune -a # 包括镜像
docker system prune --volumes # 包括数据卷
Dockerfile 构建#
构建镜像#
docker build -t myimage:v1 .
docker build -t myimage:v1 -f Dockerfile.custom .
Dockerfile 示例#
FROM centos:7
LABEL maintainer="admin@example.com"
RUN yum install -y vim \
&& yum clean all
COPY app.py /app/
WORKDIR /app
EXPOSE 8080
CMD ["python", "app.py"]
容器转镜像(不推荐)#
docker commit container_name image_name
注意:不推荐使用 commit 创建镜像。建议使用 Dockerfile 构建镜像,因为 commit 创建的镜像不可复现。
常用组合命令#
批量停止所有容器#
docker stop $(docker ps -q)
批量删除所有容器#
docker rm $(docker ps -aq)
查看容器 IP 地址#
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx
复制文件到容器#
docker cp file.txt nginx:/tmp/
docker cp nginx:/tmp/file.txt ./
希望这份速查手册对你有所帮助!建议收藏备用。
