一、基础信息 & 镜像操作
docker -v # 查看docker版本 docker info # 查看docker详细信息 docker help # 帮助文档
- 镜像拉取、查看、删除 docker pull [镜像名:版本] # 拉取镜像,不加tag默认latest
示例:docker pull nginx:1.25
docker images # 列出本地所有镜像 docker images | grep nginx # 过滤镜像
docker rmi [镜像ID/镜像名] # 删除镜像 docker rmi -f [镜像] # 强制删除镜像(被容器占用也删) docker rmi $(docker images -q) # 清空所有本地镜像
docker search mysql # 搜索仓库镜像 docker tag nginx my-nginx:v1 # 给镜像打标签 docker save -o nginx.tar nginx:1.25 # 导出镜像压缩包 docker load -i nginx.tar # 导入本地镜像包
二、容器生命周期(创建、启动、停止、删除)
- 创建并运行容器 run(最常用)
通用模板
docker run [参数] 镜像名
常用参数说明
-d # 后台守护进程运行 --name 容器名 # 指定容器名称 -p 主机端口:容器端口 # 端口映射 -v 主机目录:容器目录 # 数据卷挂载 --restart=always # 开机/重启docker自动启动容器 -it # 交互式终端,进入容器 -e KEY=VALUE # 设置环境变量 --network=xxx # 指定网络
示例1:后台运行nginx,映射80端口
docker run -d --name mynginx -p 8080:80 --restart=always nginx
示例2:交互式进入centos
docker run -it --name test-centos centos /bin/bash
- 启停容器
docker start [容器名/ID] # 启动已存在容器 docker stop [容器名/ID] # 优雅停止容器 docker restart [容器名/ID] # 重启容器 docker kill [容器名/ID] # 强制杀死容器
-
查看容器 docker ps # 查看正在运行容器 docker ps -a # 查看所有容器(包含已停止) docker ps -q # 只输出容器ID docker logs [容器名] # 查看容器日志 docker logs -f [容器名] # 实时滚动日志 docker logs --tail 100 nginx # 查看最后100行日志
-
删除容器
docker rm [容器ID/名称] docker rm -f [容器] # 强制删除运行中容器 docker rm $(docker ps -aq) # 清空所有容器
三、进入容器、文件拷贝
- 进入运行中的容器 docker exec -it [容器名] /bin/bash
示例:docker exec -it mynginx /bin/sh
- 主机 ↔ 容器 文件复制
容器文件复制到主机
docker cp mynginx:/etc/nginx/nginx.conf ./nginx.conf
本地文件上传到容器
docker cp ./index.html mynginx:/usr/share/nginx/html/
四、数据卷 Volume
docker volume ls # 查看所有数据卷 docker volume create nginx-data # 创建命名卷 docker volume inspect nginx-data # 查看卷挂载路径 docker volume rm nginx-data # 删除数据卷 docker volume prune # 清理无用数据卷
五、网络操作 docker network ls # 查看网络 docker network create my-net # 创建自定义桥接网络 docker network connect my-net 容器名 # 容器加入网络 docker network disconnect my-net 容器名 # 断开网络 docker network rm my-net # 删除网络
六、镜像构建(Dockerfile)
末尾 . 代表Dockerfile所在当前目录
docker build -t my-web:v1 .
指定Dockerfile文件名构建
docker build -f Dockerfile.prod -t my-web:prod .
七、系统清理命令(释放磁盘)
清理停止的容器、无用镜像、无用网络、悬空卷
docker system prune
彻底清理,包含未使用的数据卷
docker system prune -a --volumes
八、容器资源查看
docker stats # 实时查看所有容器CPU、内存、IO占用 docker inspect 容器名 # 查看容器完整元数据(IP、挂载、端口等)
只提取容器IP
docker inspect -f '{{.NetworkSettings.IPAddress}}' mynginx
九、Docker Compose 配套命令(常用)
docker compose up -d # 后台启动服务 docker compose down # 停止并删除容器(保留镜像、卷) docker compose down -v # 停止并删除容器+数据卷 docker compose logs -f # 实时查看日志 docker compose ps # 查看compose容器 docker compose restart # 重启服务 docker compose build # 重新构建镜像
八、实用查询小命令 只输出容器 IP docker inspect -f '{{.NetworkSettings.IPAddress}}' 容器名
筛选指定镜像(如 mysql) docker images | grep mysql
筛选运行中的指定容器 docker ps | grep nginx
实时监控资源占用 docker stats