一、查看 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,但映射到宿主机时需要用不同端口。