Docker 是一个基于 容器技术(Container) 的平台,用来打包、分发和运行应用程序。容器是一种轻量级、隔离性强的运行环境,它使用 Linux 内核的 Namespace 和 Cgroup 技术实现资源隔离,比传统虚拟机更加高效。

简单对比:
项目虚拟机(VM)Docker 容器启动速度慢(分钟级)快(秒级)资源开销高(需要完整 OS)低(共享内核)部署方式镜像 + OS镜像即可可移植性中强
Docker 解决的问题很简单:
“在我的电脑上好好的”不再成为借口。
Docker 的核心概念
理解以下三个核心概念,是掌握 Docker 的基础:
1. 镜像(Image)
镜像是一个只读模板,例如一个 Ubuntu 系统、一套 Python 环境或一个 nginx 服务。
镜像可以包含:
- 应用程序
- 库文件
- 系统工具
- 配置
常用命令:
docker pull nginx
docker images
docker rmi nginx

2. 容器(Container)
容器是镜像的运行实例,就像基于 class 创建的 object 一样。
容器特性:
- 运行时有独立的文件系统
- 生命周期可以启动、停止、删除
- 可保持数据(卷 Volume)
常用命令:
docker run -d --name web nginx
docker ps -a
docker stop web
docker rm web

3. 仓库(Registry)
存放镜像的地方,例如:
- Docker Hub(官方)
- Harbor(企业私有)
- GitHub Container Registry
拉取镜像:
docker pull ubuntu
上传镜像(需登录):
docker push myrepo/myimage
Docker 安装与服务管理
以 CentOS / RHEL 为例:
yum install -y docker
systemctl enable --now docker
查看 Docker 状态:
systemctl status docker
常用 Docker 命令行
下面将常用命令按场景总结,让你从实践中理解 Docker。
1. 创建并运行容器
最常用的 run 命令:
docker run -it --name test ubuntu bash
参数含义:
- -it:交互模式进入终端
- –name:容器名称
- ubuntu:镜像名
- bash:运行命令
后台运行:
docker run -d --name web nginx
指定端口映射:
docker run -d -p 8080:80 nginx
表明访问 服务器:8080 就等同访问容器内的 80 端口。
2. 查看容器状态
docker ps
docker ps -a
查看容器资源:
docker top web
docker stats
3. 进入运行中的容器
docker exec -it web bash
4. 停止与删除容器
docker stop web
docker rm web
一次性删除所有容器:
docker rm -f $(docker ps -aq)
5. 查看日志
docker logs -f web
数据持久化:Volume 和 Bind Mount
1. Volume(推荐)
docker volume create mydata
docker run -d -v mydata:/usr/share/nginx/html nginx
Volume 的优点:
- 持久化数据
- 镜像与容器之间解耦
- 方便迁移
2. Bind Mount(直接挂载宿主机目录)
docker run -d -v /data/web:/usr/share/nginx/html nginx
适用于:
- 本地开发
- 与宿主机文件实时同步
构建镜像:Dockerfile
Dockerfile 是一个构建镜像的脚本文件,例如:
FROM python:3.10
COPY app.py /app/app.py
WORKDIR /app
CMD ["python", "app.py"]
构建镜像:
docker build -t myapp:v1 .
运行:
docker run -d -p 8000:8000 myapp:v1
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


