一、镜像管理
命令 | 说明 | 示例 |
|---|
docker pull
| 拉取镜像 | docker pull docker.1ms.run/library/redis:7.2
|
docker images
| 列出本地镜像 | docker images
|
docker rmi
| 删除镜像 | docker rmi docker.1ms.run/library/redis:7.2
|
docker tag
| 给镜像打标签 | docker tag docker.1ms.run/library/redis:7.2 redis:latest
|
docker build
| 通过 Dockerfile 构建镜像 | docker build -t myredis:1.0.0 .
|
docker save
| 导出镜像为 tar 文件 | docker save -o redis.tar docker.1ms.run/library/redis:7.2
docker save docker.1ms.run/library/redis:7.2 > redis-7.2.tar
|
docker load
| 从 tar 文件导入镜像 | docker load -i redis-7.2.tar
|
二、容器管理
命令 | 说明 | 示例(基于 Redis) |
|---|
docker run
| 创建并启动容器 | docker run -d --name redis1 -p 6379:6379 docker.1ms.run/library/redis:7.2
|
docker ps
| 查看运行中的容器 | docker ps
|
docker ps -a
| 查看所有容器(含退出) | docker ps -a
|
docker start
| 启动已停止的容器 | docker start redis1
|
docker stop
| 停止容器 | docker stop redis1
|
docker restart
| 重启容器 | docker restart redis1
|
docker rm
| 删除容器(需先停止) | docker rm redis1
|
docker rm -f
| 强制删除运行中的容器 | docker rm -f redis1
|
docker exec
| 在运行中的容器内执行命令 | docker exec -it redis1 redis-cli INFO
|
docker logs
| 查看容器日志 | docker logs redis1
|
docker inspect
| 查看容器详细信息 | docker inspect redis1
|
docker cp
| 在容器和宿主机之间复制文件 | docker cp redis1:/data/dump.rdb ./backup/
|
三、Volume 管理(数据持久化)
命令 | 说明 | 示例 |
|---|
docker volume create
| 创建数据卷 | docker volume create redis-data
|
docker volume ls
| 列出所有数据卷 | docker volume ls
|
docker volume inspect
| 查看数据卷详情 | docker volume inspect redis-data
|
docker volume rm
| 删除指定数据卷 | docker volume rm redis-data
|
docker volume prune
| 删除所有未使用的数据卷 | docker volume prune
|
在 docker run 中使用 | 挂载数据卷 | docker run -v redis-data:/data ...
|
在 docker run 中使用(宿主机路径绑定) | 绑定挂载 | docker run -v /host/path:/data ...
|
示例 – 使用 Volume 运行 Redis:
bash
# 创建卷
docker volume create redis-data
# 挂载卷并开启 AOF 持久化
docker run -d --name redis-vol \
-p 6379:6379 \
-v redis-data:/data \
docker.1ms.run/library/redis:7.2 \
redis-server --appendonly yes
四、网络管理
命令 | 说明 | 示例 |
|---|
docker network create
| 创建自定义网络 | docker network create mynet
docker network create --subnet=192.160.1.0/24 --gateway=192.160.1.1 wss-cloud-network |
docker network ls
| 列出网络 | docker network ls
|
docker network inspect
| 查看网络详情 | docker network inspect mynet
|
docker network connect
| 将容器连接到网络 | docker network connect mynet redis1
|
docker network disconnect
| 断开容器网络 | docker network disconnect mynet redis1
|
docker network rm
| 删除网络 | docker network rm mynet
|
示例 – Redis 在自定义网络中运行:
bash
# 创建网络
docker network create redis-net
# 运行 Redis 并加入网络
docker run -d --name redis-net-1 --network redis-net \
docker.1ms.run/library/redis:7.2
# 另一个容器可通过容器名访问 Redis(Docker DNS 解析)
docker run --rm --network redis-net alpine \
sh -c "nc -vz redis-net-1 6379" # 测试连通性
五、系统管理
命令 | 说明 | 示例 |
|---|
docker info
| 显示 Docker 系统信息 | docker info
|
docker version
| 显示版本信息 | docker version
|
docker system df
| 查看磁盘使用情况(镜像、容器、卷) | docker system df
|
docker system prune
| 清理未使用的数据(镜像、容器、网络、构建缓存) | docker system prune -a
|
六、常用组合演练(Redis 实例)
场景1:拉取镜像 → 运行容器 → 查看日志 → 进入容器 → 删除
bash
docker pull docker.1ms.run/library/redis:7.2
docker run -d --name redis-test -p 6379:6379 docker.1ms.run/library/redis:7.2
docker logs -f redis-test # 跟随输出日志
docker exec -it redis-test bash # 进入容器(若可用 bash,否则用 sh)
redis-cli ping # 在容器内执行,返回 PONG
docker stop redis-test
docker rm redis-test
场景2:Volume 持久化 + 网络通信
bash
# 创建卷和网络
docker volume create redis-data
docker network create app-net
# 启动 Redis(挂载卷,加入网络)
docker run -d --name redis-app \
--network app-net \
-v redis-data:/data \
docker.1ms.run/library/redis:7.2 \
redis-server --appendonly yes
# 启动一个临时客户端容器测试
docker run --rm --network app-net alpine \
sh -c "apk add redis && redis-cli -h redis-app set mykey hello && redis-cli -h redis-app get mykey"