docker常用命令

Docker 是一个轻量级的容器化工具 ,能把应用 + 依赖库 + 配置 打包成一个独立 "集装箱"(容器),在任何 Linux/Windows 上一模一样地运行,解决 "我电脑上能跑、服务器上不行" 的问题。

Docker 是 C/S 架构:即后台跑一个 **Docker 服务端,**守护进程 = 后台默默一直运行的服务程序

Docker 三要素

  1. **镜像(Image)**只读模板,相当于 "安装包 / 系统盘"。
  2. **容器(Container)**镜像运行起来的实例,相当于 "正在运行的系统 / 程序"。
  3. **仓库(Repository)**存放、下载镜像的地方(如 Docker Hub)。

Docker 会打包什么

打包一个应用能独立运行所需的一切

  • 应用代码、可执行程序
  • 运行依赖库、环境(Python/Java/Node/CUDA 等)
  • 系统配置、环境变量
  • 必要的系统文件(最小化 Linux 环境)

Docker 为什么比虚拟机快

VM 是虚拟一整台电脑;Docker 只虚拟一个运行环境,共用宿主机的 Linux 内核,不虚拟硬件,不跑完整系统,只是隔离进程、文件、网络---秒级启动,内存占用极低

windows安装docker

首先必须启用 WSL 2, 然后下载 Desktop:Docker Desktop: The #1 Containerization Tool for Developers | Docker

安装完成 → 重启电脑 →PowerShell输入docker --version验证是否安装成功

Linux安装docker

curl -fsSL https://get.docker.com -o get-docker.sh #下载 Docker 官方自动安装脚本

sudo sh get-docker.sh #用管理员权限运行安装脚本

sudo usermod -aG docker $USER #把当前用户加入 docker 组(免 sudo)

常用命令

docker --help #类似于linux的man,帮助命令

docker run --rm xxxname#运行一个容器+运行完自动删除容器+镜像名字

  • 先找本地有没有
  • 本地没有 → 自动去云端(Docker Hub)下载
  • 下载完 → 自动运行

镜像相关

docker images# 查看本地所有镜像

docker images -aq #显示所有镜像(包括中间层缓存镜像),只显示镜像 ID

docker images --no-trunc #显示完整镜像 ID(不截断)

docker images -f "dangling=true" #-f过滤镜像

docker pull 镜像名# 只下载镜像,不运行

docker rmi 镜像ID/名 # 删除本地镜像

docker rmi $(docker images -f "dangling=true" -q) #批量删除虚悬镜像,拉取新版镜像时,旧版被顶替,就是虚悬镜像

docker search 关键词 # 在Docker Hub搜索镜像 Docker Hub Container Image Library | App Containerization

docker build -t my-python-app:v1 .#构建自己的镜像(会自动找Dockerfile)

容器命令

docker run -d xxx#后台运行容器(守护式)

docker run -it xxx #交互式终端(进入容器内部敲命令,会分配伪终端)

docker run -p 8080:80 xxx #端口映射(宿主机端口:容器端口),让外部能访问容器

docker run --name mynginx xxx #给容器起名字

docker run -e MYSQL_ROOT_PASSWORD=123456 mysql #设置环境变量

docker ps #查看有几个容器在运行

exit#退出当前容器,容器会停止运行

先按 Ctrl + P,松开再按 Ctrl + Q #后台退出(容器继续跑)

docker exec -it 容器名/ID bash#进入正在运行的容器,打开容器内部的命令行
docker start xxx #启动一个已经存在、但停止了的旧容器

docker restart xxx#重启

docker stop xxx#停止一个容器 kill是强制停止

docker rm xxx #删除容器,如果容器在运行,会提示,需要的话加-f

docker system prune # 清理无用镜像、容器、缓存
**docker commit #**把一个正在修改过的容器,打包成一个新的镜像

docker commit 容器ID或名字 新镜像名字:版本号

commit 会把容器当前所有内容打包进去,不会包含挂载的目录(-v 挂载的内容不会进镜像)

服务管理

systemctl start docker # 启动Docker服务

systemctl stop docker # 停止Docker服务

systemctl restart docker # 重启Docker

systemctl enable docker # 开机自启

systemctl status docker # 查看Docker状态

docker logs 容器ID # 查看容器日志

docker inspect 容器/镜像 # 查看详细信息

容器数据卷

容器数据卷 = 容器与宿主机之间的 "共享文件夹",用来让数据持久化、不丢失。

容器删了 → 里面的数据也一起删了

但像 MySQL、Redis、你的业务文件,不能丢 。所以要用 数据卷 把数据保存在宿主机上,跟容器生命周期分开。

docker run -v /宿主机目录:/容器目录 镜像名

上述命令让宿主机的某个目录 → 直接映射到容器内部

Dockerfile

Dockerfile 就是一个 "构建镜像的脚本 / 说明书",Docker 按照这份说明书,自动构建出一个镜像

相关推荐
King's King10 小时前
自动化立体仓库系统项目施工要点
运维·自动化
资源分享助手10 小时前
三网H5小游戏战车向前冲搭建教程(Win+Linux)
linux·运维·服务器
无限进步_10 小时前
Linux权限模型:从rwx到粘滞位
linux·运维·服务器
Stackflowed11 小时前
Docker安装Oracle
docker·oracle·容器
goyeer11 小时前
【ITIL4】- 服务价值体系
大数据·运维·信息化·自动运维·itil
邵奈一11 小时前
OrbStack 环境下 Dify 启动报错完整解决方案教程:validating docker-compose.yaml
docker·容器·eureka
精益数智小屋11 小时前
设备维护方案核心功能拆解:一套好的设备维护方案如何解决设备突发故障
大数据·运维·网络·数据库·人工智能·面试·自动化
SWAGGY..11 小时前
Linux系统编程:(一)基础指令详解
linux·运维·服务器
Agent产品评测局11 小时前
设备运维自动化预警系统,从0到1落地实操方法:2026企业级架构与智能体选型全指南
运维·人工智能·ai·chatgpt·架构·自动化
一池秋_11 小时前
etc/sudo.conf is owned by uid 10258, should be 0解决
linux·运维·服务器