从vmware到docker 01-小白的docker学习笔记
字数 1855 2025-08-11 08:36:31
Docker 从入门到实践 - 详细教学文档
一、Docker 简介
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。它允许开发者打包应用及其依赖到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
核心特性:
- 轻量级虚拟化:只虚拟容器所需资源
- 沙箱机制:容器间完全隔离,类似 iPhone 的 app
- 高性能:性能开销极低
- 可移植性:一次构建,随处运行
二、Docker 与传统虚拟机的区别
| 特性 | Docker | VMware |
|---|---|---|
| 虚拟化类型 | 轻量级虚拟化 | 完全虚拟化 |
| 内核 | 共享宿主内核 | 每个虚拟机有独立内核 |
| 硬件虚拟化 | 无 | 虚拟整套硬件 |
| 资源利用率 | 60%-80% | 约30% |
| 安全性 | 相对较低 | 较高 |
| 启动速度 | 秒级 | 分钟级 |
三、Docker 核心概念
1. 镜像(Images)
- 静态文件,类比 VMware 的 ISO 镜像
- 默认通过 http/https 协议拉取
- 包含应用及其所有依赖
2. 容器(Container)
- 动态实例,有生命周期
- 类比 VMware 中的虚拟机
- 容器间相互隔离但共享资源
3. 仓库(Registry)
- 存储镜像的公共/私有仓库
- 类比 GitHub 但用于镜像
- 官方仓库 Docker Hub 包含数十万镜像
四、Docker 安装
Linux 安装方法
方法一:官方脚本安装(推荐)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
方法二:国内 DaoCloud 一键安装
curl -sSL https://get.daocloud.io/docker | sh
Windows 安装注意事项
- Docker 必须运行在 Linux 内核上
- Windows 需先安装虚拟机运行 Linux 系统
- 推荐使用 WSL2 或 Hyper-V 虚拟机
五、镜像加速配置
国内常用加速器
- 科大镜像:
https://docker.mirrors.ustc.edu.cn/ - 网易:
https://hub-mirror.c.163.com/ - 阿里云:
https://<你的ID>.mirror.aliyuncs.com - 七牛云:
https://reg-mirror.qiniu.com
配置方法(Ubuntu/CentOS/Debian)
- 创建或编辑
/etc/docker/daemon.json - 添加内容:
{
"registry-mirrors": ["https://your-mirror-url"]
}
- 重启服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
验证配置
docker info
查看输出中是否包含配置的镜像地址。
六、代理设置(适用于需要代理的环境)
- 创建配置目录:
sudo mkdir -p /etc/systemd/system/docker.service.d
- 创建配置文件:
sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
添加内容:
[Service]
Environment="HTTP_PROXY=http://proxy-addr:port/"
Environment="HTTPS_PROXY=http://proxy-addr:port/"
Environment="NO_PROXY=localhost,127.0.0.1"
- 应用配置:
sudo systemctl daemon-reload
sudo systemctl restart docker
- 验证:
docker search centos
七、Docker 基本使用
1. 镜像操作
搜索镜像
docker search httpd
参数说明:
- NAME: 镜像名称
- DESCRIPTION: 描述
- OFFICIAL: 是否官方
- STARS: 受欢迎度
- AUTOMATED: 是否自动构建
拉取镜像
docker pull ubuntu
列出镜像
docker images
或
docker image ls -a
输出字段:
- REPOSITORY: 仓库名
- TAG: 标签
- IMAGE ID: 镜像ID
- CREATED: 创建时间
- SIZE: 大小
删除镜像
docker rmi <镜像名或ID>
2. 容器操作
启动容器
docker run -it ubuntu /bin/bash
参数:
-i: 交互式操作-t: 分配终端/bin/bash: 启动后执行的命令
后台运行容器
docker run -itd --name ubuntu-test ubuntu /bin/bash
-d: 后台运行--name: 指定容器名称
查看容器
docker ps -a # 查看所有容器
docker ps # 查看运行中的容器
启动/停止/重启容器
docker start <容器ID>
docker stop <容器ID>
docker restart <容器ID>
进入容器
推荐方式(退出不会停止容器):
docker exec -it <容器ID> /bin/bash
传统方式(退出会停止容器):
docker attach <容器ID>
导出/导入容器
导出:
docker export <容器ID> > ubuntu.tar
导入:
cat ubuntu.tar | docker import - test/ubuntu:v1
清理容器
删除所有停止的容器:
docker container prune
八、最佳实践建议
- 镜像来源:优先使用官方镜像,确保安全性
- 容器管理:为容器指定有意义的名称(--name)
- 资源监控:定期检查容器资源使用情况
- 数据持久化:重要数据使用卷(volume)存储
- 镜像加速:国内用户务必配置镜像加速器
- 安全更新:定期更新Docker和镜像版本
九、学习资源
- 官方文档:https://docs.docker.com/
- Docker Hub:https://hub.docker.com/
- 阿里云容器服务:https://www.aliyun.com/product/containerservice
- 菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html
通过本文档,您应该已经掌握了Docker的核心概念和基本操作。建议从简单的容器操作开始,逐步尝试构建自己的镜像和部署完整应用。