📃个人主页:编程的一拳超人
⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞
于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 ——《人民日报》
- 一、镜像管理
- 1. 拉取镜像
- 2. 查看本地镜像
- 3. 删除镜像
- 4. 构建镜像
- 5. 标记镜像
- 6. 推送镜像到仓库
- 二、容器操作
- 1. 创建并启动容器
- 2. 查看容器
- 3. 启动/停止/重启容器
- 4. 进入容器
- 5. 删除容器
- 6. 查看容器日志
- 7. 查看容器详情
- 三、网络管理
- 1. 查看网络
- 2. 创建网络
- 3. 连接容器到网络
- 四、数据卷管理
- 1. 创建数据卷
- 2. 查看数据卷详情
- 3. 删除数据卷
- 五、其他常用命令
- 1. 查看 Docker 信息
- 2. 清理未使用资源
一、镜像管理
1. 拉取镜像
命令:docker pull [镜像名]:[标签],标签省略时默认latest
应用示例:拉取 Ubuntu 20.04 镜像
dockerpull ubuntu:20.04运行结果:
20.04: Pulling from library/ubuntu 5a81c4b8502e: Pull complete Digest: sha256:xxx Status: Downloaded newer image for ubuntu:20.04 docker.io/library/ubuntu:20.042. 查看本地镜像
命令:docker images(列出所有本地镜像)
dockerimages# 列出所有本地镜像dockerimages-q# 只显示镜像ID应用示例:查看已下载的镜像
dockerimages运行结果:
REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 20.04 d13c942271d6 2 weeks ago 72.8MB nginx latest 605c77e624dd 3 weeks ago 141MB3. 删除镜像
命令:docker rmi [镜像ID/镜像名]
dockerrmi[镜像ID/镜像名]# 删除指定镜像,需先停止依赖该镜像的容器dockerrmi$(dockerimages-q)# 删除所有本地镜像(慎用)应用示例:删除 Ubuntu 20.04 镜像(需先停止依赖它的容器)
dockerrmi ubuntu:20.04运行结果:
Untagged: ubuntu:20.04 Untagged: ubuntu@sha256:xxx Deleted: sha256:d13c942271d6...4. 构建镜像
命令:docker build -t [镜像名]:[标签] [Dockerfile目录]
dockerbuild-t[镜像名]:[标签][Dockerfile所在目录]# 如 docker build -t myapp:1.0.应用示例:基于当前目录的 Dockerfile 构建名为myapp:1.0的镜像
dockerbuild-tmyapp:1.0.运行结果:
Sending build context to Docker daemon 2.048kB Step 1/3 : FROM ubuntu:20.04 ... Successfully built a1b2c3d4e5f6 Successfully tagged myapp:1.05. 标记镜像
命令:docker tag [原镜像] [新镜像名:新标签]
dockertag[原镜像名:标签][新镜像名:新标签]# 常用于给镜像打版本或推送至仓库应用示例:给myapp:1.0标记为仓库推送格式
dockertag myapp:1.0 myrepo/myapp:1.0运行结果:无输出,可通过docker images查看标记后的镜像。
6. 推送镜像到仓库
命令:docker push [仓库地址/镜像名]:[标签]
dockerpush[仓库地址/镜像名]:[标签]# 需先登录仓库(docker login)应用示例:推送镜像到个人仓库(需先docker login)
dockerpush myrepo/myapp:1.0运行结果:
The push refers to repository [docker.io/myrepo/myapp] 12345678: Pushed 1.0: digest: sha256:xxx size: 1234二、容器操作
1. 创建并启动容器
命令:docker run [选项] [镜像名] [命令]
dockerrun[选项][镜像名][命令]# 常用选项:-d# 后台运行(守护态)-p主机端口:容器端口# 端口映射,如 -p 8080:80-v主机目录:容器目录# 数据卷挂载,如 -v /data:/app/data--name[容器名]# 指定容器名称-eKEY=VALUE# 设置环境变量--rm# 容器退出后自动删除--link[其他容器名]# 链接到其他容器(已逐步被网络替代)应用示例:后台启动 Nginx 容器,映射主机 8080 端口到容器 80 端口,命名为mynginx
dockerrun-d-p8080:80--namemynginx nginx运行结果:
f4a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0(输出容器 ID,表示启动成功,可通过http://localhost:8080访问 Nginx 首页)
2. 查看容器
命令:docker ps(运行中容器);docker ps -a(所有容器)
dockerps# 列出运行中的容器dockerps-a# 列出所有容器(包括停止的)dockerps-q# 只显示运行中容器的ID应用示例:查看所有容器
dockerps-a运行结果:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f4a1b2c3d4e5 nginx "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:8080->80/tcp mynginx3. 启动/停止/重启容器
命令:docker start/stop/restart [容器名/ID]
dockerstart[容器ID/容器名]# 启动已停止的容器dockerstop[容器ID/容器名]# 停止运行中的容器dockerrestart[容器ID/容器名]# 重启容器应用示例:停止mynginx容器
dockerstop mynginx运行结果:
mynginx(执行docker ps可看到容器状态变为Exited)
4. 进入容器
命令:docker exec -it [容器名/ID] [shell]
dockerexec-it[容器ID/容器名][shell]# 交互式进入容器,如 docker exec -it mynginx bashdockerattach[容器ID/容器名]# 进入容器(退出时可能导致容器停止,慎用)应用示例:进入mynginx容器的 bash 终端
dockerexec-itmynginxbash运行结果:
root@f4a1b2c3d4e5:/# # 进入容器内部终端,可执行命令如 `ls /usr/share/nginx/html`5. 删除容器
命令:docker rm [容器名/ID](停止状态);docker rm -f [容器名/ID](强制删除运行中容器)
应用示例:强制删除mynginx容器
dockerrm-fmynginx运行结果:
mynginx6. 查看容器日志
命令:docker logs [选项] [容器名/ID]
dockerrm[容器ID/容器名]# 删除已停止的容器dockerrm-f[容器ID/容器名]# 强制删除运行中的容器dockerrm$(dockerps-aq)# 删除所有容器(慎用)应用示例:实时查看mynginx的日志(需容器运行中)
dockerlogs-fmynginx运行结果:
172.17.0.1 - - [11/Aug/2025:08:00:00 +0000] "GET / HTTP/1.1" 200 615 "-" "curl/7.68.0" "-" # 实时输出访问日志,按 Ctrl+C 退出7. 查看容器详情
命令:docker inspect [容器名/ID]
dockerinspect[容器ID/容器名]# 查看容器的详细配置信息(如IP、挂载等)应用示例:查看mynginx的详细配置
dockerinspect mynginx运行结果:
[{"Id":"f4a1b2c3d4e5...","Created":"2025-08-11T08:00:00.000000000Z","HostConfig":{"PortBindings":{"80/tcp":[{"HostPort":"8080"}]}},// 更多网络、挂载等详细信息...}]三、网络管理
1. 查看网络
命令:docker network ls
应用示例:列出所有 Docker 网络
dockernetworkls运行结果:
NETWORK ID NAME DRIVER SCOPE a1b2c3d4e5f6 bridge bridge local f6e5d4c3b2a1 host host local2. 创建网络
命令:docker network create [网络名]
应用示例:创建名为my-network的 bridge 网络
dockernetwork create my-network运行结果:
b3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f33. 连接容器到网络
命令:docker network connect [网络名] [容器名]
应用示例:将mynginx连接到my-network
dockernetwork connect my-network mynginx运行结果:无输出,可通过docker network inspect my-network查看连接的容器。
四、数据卷管理
1. 创建数据卷
命令:docker volume create [卷名]
应用示例:创建名为my-volume的数据卷
dockervolume create my-volume运行结果:
my-volume2. 查看数据卷详情
命令:docker volume inspect [卷名]
应用示例:查看my-volume的挂载路径
dockervolume inspect my-volume运行结果:
[{"Driver":"local","Mountpoint":"/var/lib/docker/volumes/my-volume/_data",// 其他信息...}]3. 删除数据卷
命令:docker volume rm [卷名]
应用示例:删除my-volume(需无容器使用)
dockervolumermmy-volume运行结果:
my-volume五、其他常用命令
1. 查看 Docker 信息
命令:docker info
应用示例:查看 Docker 系统状态
dockerinfo运行结果:
Containers: 1 Running: 1 Paused: 0 Stopped: 0 Images: 2 Server Version: 24.0.5 Storage Driver: overlay2 # 更多系统配置信息...2. 清理未使用资源
命令:docker system prune
应用示例:清理未使用的镜像、容器和网络
dockersystem prune运行结果:
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all dangling build cache Are you sure you want to continue? [y/N] y Deleted Containers: f4a1b2c3d4e5... Total reclaimed space: 123MB通过docker [命令] --help可查看每个命令的完整参数(例如docker run --help),实际使用时可根据场景调整选项。