【Docker】基础
什么是Docker?
Docker 是一种开源的容器化平台,它允许开发者将应用程序及其所有依赖(如库、运行时环境、系统工具等)打包到一个标准化的 “容器” 中,从而实现应用在不同环境(开发、测试、生产)之间的快速、一致且隔离的部署。
什么是容器化?
容器化是一种操作系统级虚拟化技术,可以实现应用的隔离、可移植和高效部署。
与虚拟机的区别
不包含OS,更小更快
| 容器化 | 虚拟机(VM) | |
|---|---|---|
| 隔离级别 | 进程级隔离(共享宿主机内核) | 完全隔离(包含独立操作系统) |
| 资源占用 | 轻量(MB 级) | 重量级(GB 级) |
| 启动速度 | 秒级 / 毫秒级 | 分钟级 |
| 移植性 | 极高(基于镜像标准) | 较低(依赖硬件和虚拟化层) |
三大核心组成部件
- 镜像是容器的 “模板”(静态文件)
- 容器是镜像的 “运行实例”(动态进程)
- 仓库是镜像的 “存储与分发平台”
1. 镜像(Image)
-
是包含应用程序及所有依赖(代码、运行环境、库、配置文件等)的只读模板。
-
不占用运行资源,无法直接操作,只能作为创建容器的基础。
-
采用分层存储设计,可通过 Dockerfile 构建或从仓库拉取。(多个镜像共享底层,避免重复存储相同内容。修改文件时才复制到可写层)

2. 容器(Container)
-
是镜像运行后的动态实例,本质是隔离的进程环境。
-
基于镜像创建,可独立启动、停止、删除、交互,拥有自己的文件系统和网络空间。
-
容器停止后,未持久化的数据会丢失,删除容器不影响原始镜像。
3. 仓库(Repository)
-
用于集中存储和分发 Docker 镜像的平台,类似代码仓库(如 GitHub)。
-
分为公开仓库(如 Docker Hub)和私有仓库,支持镜像的上传(push)、下载(pull)。
-
一个仓库可包含多个标签(Tag)的镜像,对应不同版本(如 nginx:1.21、nginx:latest)。
三者关系
-
从仓库拉取镜像到本地(docker pull)。
-
基于本地镜像创建并启动容器(docker run)。
-
容器运行中产生的变更可提交为新镜像(docker commit)。
-
新镜像可上传到仓库供他人使用(docker push)。
指令
查看镜像image ls
docker images
docker image ls
拉取镜像pull
docker pull [选项] 镜像名称[:标签]#拉取默认镜像latest(最新)
docker pull 镜像名称#拉取指定标签的镜像
docker pull 镜像名称:标签#拉取私有仓库的镜像
# 登录私有仓库
docker login 仓库地址
# 拉取私有镜像
docker pull 仓库地址/镜像名称:标签
删除镜像rm
docker image rm 镜像id
查看历史history
docker history 镜像id
显示容器ps(Process Status)
docker ps
运行容器run
#后台运行容器detached mode
docker run -d 依据的镜像名#交互式运行容器interactive mode+Teletypewriter
docker run -it 依据的镜像名#--name起别名 -p主机端口:服务器端口
docker run -d --name nginx-default -p 8080:80
容器没有前台进程会立即退出
进入容器exec bash
docker exec -it 容器ID/名字 /bin/sh
docker exec -it 容器ID/名字 bash
ctrl+d退出容器
查看详细元数据inspect
docker inspect id
删除容器rm(remove)
#强制删除容器
docker rm -f ID(或者名字)#停止容器
#退出容器
docker stop 容器名
docker rm 容器名
