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 (不再推荐,使用自定义网络代替)
相关推荐
Crazy________17 分钟前
Redis03:持久化存储,大key分析,主从复制及哨兵模式
数据库·redis·容器
2401_834636991 小时前
从零吃透 K8s 网络:ServiceIngressMetalLB 实操手册
网络·容器·kubernetes
JavaPub-rodert3 小时前
我又把自己的 Go 后台管理系统升级了一遍:文件管理、2GB 上传、私有文件预览、Docker 镜像全安排上了
开发语言·docker·golang·shiyuadmin
爱码少年3 小时前
嗯,腾讯云个人小站Docker镜像下载功能已下线,压力给到阿里云镜像站
docker
Zhu7584 小时前
在docker环境部署frp
运维·docker·容器
燐妤6 小时前
腾讯云 Ubuntu 24.04 + Docker 同时部署多个 Python Web 项目:没有域名也能用 IP 访问
ubuntu·docker·腾讯云
承渊政道7 小时前
飞牛NAS部署Immich:搭建家庭相册并实现远程访问
运维·服务器·docker·内网穿透·cpolar·nas·immich
x-cmd7 小时前
用 Rust 打造 AI 时代的 SQL:把重复任务变成可执行文件
数据库·人工智能·sql·ai·容器·rust·workflow
ruofu338 小时前
如何让docker使用提前下载好的镜像,而不是在线拉取
java·spring cloud·docker
童槿顏丶21 小时前
docker自动化部署脚本
docker·eureka·自动化