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 (不再推荐,使用自定义网络代替)
相关推荐
九皇叔叔7 小时前
Kubernetes 资源管理方式详解:命令式与声明式管理
docker·容器·k8s
程序猿小郑12 小时前
Docker Compose 构建完整服务实战指南:从入门到最佳实践
docker·容器
行百里er16 小时前
5 分钟跑起 Redis(Docker 版)
redis·后端·docker
Mr.朱鹏16 小时前
Docker三剑客实战指南:Docker、Dockerfile 和 Docker Compose
python·docker·devops·dockerfile
鬼先生_sir17 小时前
Docker 完整教程
docker
java_logo17 小时前
Docker 一键部署 Jellyfin:快速搭建私有化媒体服务器
docker·私有化部署·jellyfin·硬件加速·媒体服务器·轩辕镜像·影音库
jianpeng的工程笔记18 小时前
WeKnora 搭建研发 EDA 知识库:Docker 部署、RAG 与 Wiki 实践
docker·知识库·eda·rag
ZeroNews内网穿透19 小时前
内网部署 Halo 建站,用 ZeroNews 免费内网穿透安全发布到公网(无公网 IP 也能 HTTPS 访问)
docker·https·内网穿透·nas·反向代理·halo·zeronews
九皇叔叔1 天前
K8S 资源菜单
docker·容器·kubernetes·k8s
wdfk_prog1 天前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros