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 (不再推荐,使用自定义网络代替)
相关推荐
BullSmall1 小时前
Anolis OS 8.10 Docker 部署 SonarQube 9.9 完整教程
运维·docker·容器
java_logo4 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
生活爱好者!17 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
java_logo18 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
MC皮蛋侠客18 小时前
uv 系列(七):CI/CD、Docker 与私有索引——生产级交付
python·ci/cd·docker·uv
Hui Baby19 小时前
K8S使用CRD和控制器简单应用
云原生·容器·kubernetes
用户2333768521821 小时前
Docker 端口"时通时不通"的排查实战
docker
做个文艺程序员21 小时前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器
ShiXZ21321 小时前
Redis docker-compose 部署指南
redis·docker·eureka
梦梦代码精1 天前
基于ThinkPHP6 + Vue3的家政预约系统全解析:从LBS定位到自动派单的完整实现
java·docker·开源·php·代码规范