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 (不再推荐,使用自定义网络代替)
相关推荐
Jinkxs1 小时前
Dubbo- 主流注册中心介绍:Zookeeper/Nacos/Eureka 适配思路
zookeeper·eureka·dubbo
Flying_Fish_roe1 小时前
springcloud-Eureka的原理
spring·spring cloud·eureka
java知路4 小时前
linux yum 下载docker安装包及依赖安装包,并离线安装
linux·运维·docker
没有退路那我就不要散步5 小时前
kube-proxy优化
docker·容器·kubernetes
ai产品老杨6 小时前
解耦安防碎片化:基于 Docker 与边缘计算的 AI 视频管理平台架构演进(附 GB28181/RTSP 统一接入与源码交付实践)
人工智能·docker·边缘计算
ai产品老杨6 小时前
基于 Docker 与边缘计算的智能安防架构:解耦 GB28181/RTSP 多协议接入与异构芯片部署(附源码交付与 95% 降本实践)
docker·架构·边缘计算
xiami_world7 小时前
私有化部署协同白板选型指南:从Docker容器化到信创全栈适配的架构实践
运维·人工智能·docker·ai·持续部署
丑过三八线8 小时前
Kubernetes 常用命令速查手册
云原生·容器·kubernetes
bloglin999998 小时前
docker镜像构建及部署样例
运维·docker·容器