一、查看 Docker 状态
查看 Docker 版本:
docker version
查看 Docker 基本信息:
docker info
测试 Docker 是否能正常运行:
docker run hello-world
如果能输出欢迎信息,说明 Docker 基本可用。
二、镜像相关命令
镜像可以理解为安装包 / 模板,比如 redis:7.2 就是 Redis 的一个镜像。
2.1 搜索镜像
docker search redis
2.2 拉取镜像
docker pull redis
指定版本:
docker pull redis:7.2
2.3 查看本地镜像
docker images
2.4 删除镜像
docker rmi 镜像ID
如果镜像正在被容器使用,需要先删除容器。
三、容器相关命令
容器是由镜像启动出来的一个运行实例。
3.1 创建并启动容器
基本格式:
docker run [参数] 镜像名
3.2 后台启动容器
-d 表示后台运行:
docker run -d --name redis1 redis
3.3 端口映射
宿主机端口:容器内部端口:
docker run -d --name redis1 -p 6379:6379 redis
3.4 查看正在运行的容器
docker ps
3.5 查看所有容器(包括已停止的)
docker ps -a
3.6 停止容器
docker stop redis1
3.7 启动已停止的容器
docker start redis1
3.8 重启容器
docker restart redis1
3.9 删除容器
docker rm redis1
强制删除(不停止直接删):
docker rm -f redis1
四、进入容器与日志
4.1 进入容器
docker exec -it redis1 bash
如果容器里没有 bash,可以用 sh:
docker exec -it redis1 sh
4.2 查看容器日志
docker logs redis1
实时查看日志:
docker logs -f redis1
查看最后 100 行:
docker logs --tail=100 redis1
4.3 查看容器详细信息
可以看到容器 IP、端口、挂载、网络等:
docker inspect redis1
五、数据卷与目录挂载
数据卷的作用是把容器里的数据保存到宿主机,避免容器删除后数据丢失。
5.1 查看数据卷
docker volume ls
5.2 创建数据卷
docker volume create redis-data
5.3 删除数据卷
docker volume rm redis-data
5.4 使用数据卷启动容器
将数据卷挂载到容器内 /data 目录:
docker run -d \
--name redis1 \
-p 6379:6379 \
-v redis-data:/data \
redis
5.5 挂载本机目录
也可以直接挂载本机目录:
docker run -d \
--name redis1 \
-p 6379:6379 \
-v /home/user/redis/data:/data \
redis
六、网络相关命令
6.1 查看网络
docker network ls
6.2 创建自定义网络
docker network create redis-net
6.3 让容器加入指定网络
docker run -d \
--name redis1 \
--network redis-net \
redis
6.4 查看网络详情
docker network inspect redis-net
七、Docker Compose 常用命令
7.1 启动服务
docker compose up -d
7.2 停止服务
docker compose down
7.3 查看 Compose 容器状态
docker compose ps
7.4 查看日志
docker compose logs -f
7.5 重启服务
docker compose restart
八、常用清理命令
8.1 删除所有已停止的容器
docker container prune
8.2 删除未使用的镜像
docker image prune
8.3 删除未使用的数据卷
docker volume prune
8.4 一键清理未使用的资源
docker system prune
更彻底的清理(慎用,会删除所有未使用的镜像):
docker system prune -a
九、实操:用 Redis 完整走一遍
上面是命令速查,下面用一个 Redis 的例子把常用命令串起来,照着敲一遍就能理解。
9.1 拉取镜像并启动
docker pull redis
docker run -d --name redis1 -p 6379:6379 redis
确认容器正在运行:
docker ps
9.2 进入 Redis 客户端
docker exec -it redis1 redis-cli
进入后测试连通性:
ping
返回 PONG 说明 Redis 正常。
9.3 写入和读取数据
set name mitch
get name
退出 Redis 客户端:
exit
9.4 查看日志
docker logs --tail=20 redis1
9.5 停止与重启
docker stop redis1
docker start redis1
9.6 删除容器
docker rm -f redis1
9.7 启动多个 Redis 实例
如果需要多台 Redis(比如练习 Redisson MultiLock),每个容器映射不同的宿主机端口即可:
docker run -d --name redis1 -p 6379:6379 redis
docker run -d --name redis2 -p 6380:6379 redis
docker run -d --name redis3 -p 6381:6379 redis
虽然容器内部都是默认端口 6379,但映射到宿主机时需要用不同端口。