Docker入门指南:从零到容器高手
Docker是一个开源容器引擎,用于打包应用及其依赖为轻量级可移植容器。相比传统虚拟机,Docker容器启动快、资源占用低。核心概念包括镜像(只读模板)、容器(运行实例)和仓库(镜像存储服务)。安装简单,支持多平台,可通过Dockerfile构建自定义镜像。Docker支持数据持久化和多容器协作(使用Docker Compose),提供高效开发和部署流程。常用命令包括容器管理、镜像操作等,建议生产
什么是Docker
Docker是一个开源的应用容器引擎,允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中。容器化技术解决了“在我的机器上能运行”的问题,确保应用在不同环境中表现一致。
为什么使用Docker
传统虚拟机需要完整的操作系统,资源占用高。Docker容器直接运行在宿主机内核上,启动快、资源消耗低。容器镜像可共享、版本化管理,简化了开发、测试和部署流程。
核心概念解析
- 镜像(Image):只读模板,包含运行应用所需的文件系统。类似面向对象中的“类”。
- 容器(Container):镜像的运行实例,具有可写层。类似“对象”。
- 仓库(Registry):存储和分发镜像的服务,Docker Hub是官方公共仓库。
安装Docker
支持Windows、macOS和主流Linux发行版。以Ubuntu为例:
sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER # 允许当前用户直接运行docker
Windows/macOS用户需下载Docker Desktop,安装后需重启终端。
第一个容器
运行Nginx服务器测试安装:
docker pull nginx:latest
docker run -d -p 8080:80 --name my_nginx nginx
访问http://localhost:8080可见Nginx欢迎页。-d指定后台运行,-p映射端口,--name设置容器名称。
构建自定义镜像
通过Dockerfile定义镜像。创建包含Python应用的镜像示例:
# 基于官方Python镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制依赖文件并安装
COPY requirements.txt .
RUN pip install -r requirements.txt
# 复制应用代码
COPY . .
# 启动命令
CMD ["python", "app.py"]
构建镜像:
docker build -t my-python-app .
容器数据管理
容器默认 ephemeral(临时存储),重要数据需持久化:
# 使用卷(Volume)持久化数据库数据
docker volume create db_data
docker run -d -v db_data:/var/lib/mysql mysql
# 绑定挂载(Bind Mount)开发时同步代码
docker run -v $(pwd):/app python-app
多容器协作
使用Docker Compose管理多个关联容器。示例docker-compose.yml:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
启动服务:
docker compose up -d
常用命令速查
docker ps # 查看运行中容器
docker images # 列出本地镜像
docker stop <container> # 停止容器
docker rm <container> # 删除容器
docker rmi <image> # 删除镜像
docker logs <container> # 查看容器日志
实战建议
- 生产环境使用特定标签而非
latest - 限制容器资源使用(CPU/内存)
- 定期清理无用镜像和容器释放空间
- 使用
.dockerignore文件排除无关文件 - 学习最佳实践安全加固容器
通过以上步骤可快速掌握Docker核心用法,实现开发环境的标准化和部署的自动化。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)