Docker 是一个 轻量级的容器化技术,用于打包、分发和运行应用程序。它提供了一种标准化的方式,将应用及其所有依赖项打包到一个 可移植的容器(Container) 中,使应用可以在任何环境中 一致地运行。
✅ 轻量级:Docker 容器比传统虚拟机更小巧,启动速度快。
✅ 可移植性:容器可以运行在本地、云端、服务器、开发环境等任何地方。
✅ 一致性:消除“在我电脑上可以运行”的问题,确保在不同环境下的行为一致。
✅ 隔离性:每个容器运行在独立的环境中,互不干扰。
✅ 快速部署:使用 Docker 可以一键启动应用,提升 CI/CD 效率。
特性 | Docker 容器 | 传统虚拟机(VM) |
---|---|---|
启动速度 | 秒级 | 分钟级 |
资源占用 | 共享主机内核,占用更少 | 每个 VM 运行完整 OS,占用更多 |
性能 | 接近物理机 | 比容器慢 |
隔离性 | 进程级隔离(共享内核) | 完整 OS 级别隔离 |
可移植性 | 支持本地、云端、不同系统间运行 | 不同平台之间迁移复杂 |
Docker 不需要运行完整的操作系统,它使用 宿主机(Host)内核,容器仅包含应用和依赖,启动速度更快,资源占用更少。
Docker 运行架构
+-----------------------------+
| 宿主机操作系统 (Host OS) |
+-----------------------------+
| Docker 引擎 (Docker Daemon) |
+-----------------------------+
| 容器1 | 容器2 | 容器3 |
| (App1) | (App2) | (App3) |
+-----------------------------+
Docker 由多个核心组件组成,理解这些组件可以帮助我们更好地使用 Docker。
docker pull ubuntu # 从 Docker Hub 下载 Ubuntu 镜像
docker images # 查看本地镜像
docker rmi ubuntu # 删除 Ubuntu 镜像
docker run -d --name my-app nginx # 以守护进程方式运行 Nginx 容器
docker ps # 查看运行中的容器
docker stop my-app # 停止容器
docker rm my-app # 删除容器
docker push myrepo/myimage:latest # 推送镜像到远程仓库
docker pull myrepo/myimage:latest # 从远程仓库拉取镜像
# 使用 Ubuntu 作为基础镜像
FROM ubuntu:20.04
# 安装 Nginx
RUN apt update && apt install -y nginx
# 复制本地文件到容器
COPY index.html /var/www/html/
# 暴露 80 端口
EXPOSE 80
# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]
docker build -t my-nginx .
docker run -d -p 8080:80 my-nginx
docker-compose.yml
文件中定义多个服务。docker-compose.yml
version: "3.8"
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
docker-compose up -d
docker run -it --rm python:3.9 bash
stages:
- build
- deploy
build:
script:
- docker build -t my-app .
- docker push myrepo/my-app
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql
docker run -d -p 80:80 nginx
命令 | 作用 |
---|---|
docker pull |
下载镜像 |
docker images |
查看本地镜像 |
docker rmi |
删除镜像 |
docker run -d -p 8080:80 nginx |
启动 Nginx 容器 |
docker ps |
查看运行中的容器 |
docker stop |
停止容器 |
docker rm |
删除容器 |
docker exec -it 容器ID bash |
进入容器 |
docker logs 容器ID |
查看容器日志 |
docker build -t my-app . |
构建镜像 |
docker-compose up -d |
运行 docker-compose.yml |
✅ Docker 是一种轻量级的容器化技术,使应用开发、测试和部署更高效。
✅ Docker 容器比传统虚拟机更快、更小,支持 CI/CD、微服务、数据库管理等多种场景。
✅ 掌握 Docker 的核心概念(镜像、容器、Dockerfile、Compose)是使用 Docker 的关键。
无论是开发者还是 DevOps,Docker 都是必备的技能!