docker基础

一、常见命令 (容器生命周期管理)

这类命令主要用于容器的创建、启动、停止、查看和删除,是日常使用频率最高的部分。

命令 说明 常用示例/参数
docker run 创建并启动一个新容器 docker run -d -p 80:80 --name my-nginx nginx - -d: 后台运行 - -p: 端口映射 - --name: 指定名称
docker ps 查看正在运行的容器 docker ps -a (查看所有,包括已停止的) docker ps -q (仅显示ID)
docker start 启动一个已停止的容器 docker start <container_id/name>
docker stop 停止一个运行中的容器 docker stop <container_id/name> (优雅停止)
docker restart 重启容器 docker restart <container_id/name>
docker kill 强制停止容器 docker kill <container_id/name> (发送 SIGKILL)
docker rm 删除容器 docker rm <container_id/name> docker rm -f <id> (强制删除运行中的)
docker exec 在运行中的容器内执行命令 docker exec -it <id> /bin/bash (进入交互模式) docker exec <id> ls
docker logs 查看容器日志 docker logs -f <id> (实时跟踪) docker logs --tail 100 <id> (看最后100行)
docker inspect 查看容器/镜像的详细元数据 docker inspect <id> (返回 JSON 格式信息)
docker top 查看容器内运行的进程 docker top <id>
docker stats 实时查看容器资源使用率 (CPU/内存) docker stats

二、数据集 (数据卷与持久化)

Docker 容器默认是 ephemeral (易失) 的,数据需要挂载到宿主机或使用卷来持久化。注:Docker 中通常称为"数据卷 (Volumes)"或"绑定挂载 (Bind Mounts)",而非严格意义上的"数据集"。

命令 说明 常用示例/参数
docker volume create 创建一个命名卷 docker volume create my-data
docker volume ls 列出所有卷 docker volume ls
docker volume inspect 查看卷的详细信息 (如挂载点) docker volume inspect my-data
docker volume rm 删除一个或多个卷 docker volume rm my-data
docker volume prune 清理所有未使用的悬空卷 docker volume prune (慎用)
挂载用法 在 run 时挂载数据 命名卷 : -v my-data:/app/data 绑定挂载 : -v /host/path:/container/path 或 --mount type=bind,src=/host,dst=/container
docker cp 在容器和宿主机间复制文件 docker cp ./file.txt <id>:/app/file.txt docker cp <id>:/app/log.log ./log.log

三、自定义镜像 (镜像构建与管理)

用于获取基础镜像、构建自己的应用镜像以及清理空间。

命令 说明 常用示例/参数
docker images 列出本地镜像 docker images -a (包含中间层镜像)
docker pull 下载镜像 docker pull ubuntu:22.04
docker push 上传镜像到仓库 docker push myuser/myapp:latest
docker build 构建镜像 (基于 Dockerfile) docker build -t my-app:v1 . - -t: 指定标签 - .: 当前目录为上下文
docker rmi 删除镜像 docker rmi <image_id/name> docker rmi -f <id> (强制删除)
docker tag 标记镜像 (重命名) docker tag source:tag target:tag
docker commit 从容器提交为新镜像 docker commit <container_id> my-new-image (不推荐用于生产,建议用 Dockerfile)
docker history 查看镜像的构建历史 docker history <image_id>
docker save/load 导出/导入镜像 tar 包 docker save -o app.tar my-app docker load -i app.tar
docker system prune 系统级清理 (镜像、容器、网络等) docker system prune -a (清理所有未使用镜像,慎用)

四、网络 (容器通信)

管理容器之间的网络连接、端口映射和网络隔离。

命令 说明 常用示例/参数
docker network ls 列出网络 docker network ls
docker network create 创建自定义网络 docker network create -d bridge my-net (推荐使用自定义桥接网络以实现 DNS 解析)
docker network inspect 查看网络详情 (含连接容器) docker network inspect my-net
docker network connect 将容器连接到网络 docker network connect my-net <container_id>
docker network disconnect 将容器从网络断开 docker network disconnect my-net <container_id>
docker network rm 删除网络 docker network rm my-net (需先断开所有容器)
端口映射 在 run 时暴露端口 -p 8080:80 (宿主机8080 -> 容器80) -P (随机映射所有暴露端口)
链接(旧版) 容器间链接 (已废弃,建议用网络) --link (不再推荐,使用自定义网络代替)
相关推荐
2501_933923251 小时前
SpringCloud组件:Eureka服务注册与发现
java·开发语言·后端·spring cloud·eureka
程序员老赵2 小时前
Docker 部署 Portainer CE:轻松搭建容器管理平台
docker·容器·开源
TTATTC3 小时前
Gmail、Drive、日历共用一套命令:gws 如何在运行时把 Discovery 文档编译成 CLI
docker·开源
大侠归来3 小时前
Docker 部署 Dolibarr:从零开始的完整指南
运维·docker·容器
七月吃橘子4 小时前
WSL2+Docker+Ollama,本地部署大模型实践(Qwen1.8b)
运维·docker·容器
Nontee4 小时前
K3s vs K8s:差的不是功能,是交付方式
云原生·容器·kubernetes
做运维的阿瑞5 小时前
Docker常见故障全方位排查指南
运维·docker·云原生·容器
木子欢儿5 小时前
Zabbix 7.4 Alpine 版 Docker Compose 部署
android·运维·docker·容器·zabbix
朱包林5 小时前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
打工仔折腾 AI6 小时前
极空间用 Docker 部署 Photopea:网页版 PS 的私有化实践
运维·后端·python·docker·容器·langchain·ai agent 实战