Docker 入门指南:一篇搞定核心概念与使用
创作时间:
作者:
@小白创作中心
Docker 入门指南:一篇搞定核心概念与使用
引用
百度
1.
https://baijiahao.baidu.com/s?id=1823551905022235969
一、为什么用 Docker?
- 环境一致性:开发、测试、生产环境一致,避免“在我机器上能跑”的问题。
- 隔离性:容器相互隔离,资源独立,避免依赖冲突。
- 快速部署:秒级启动,简化 CI/CD 流程。
- 轻量高效:与传统虚拟机相比,资源占用更少,性能更高。
二、核心概念
- 镜像(Image)
- 静态的模板,包含应用和运行环境(如 Ubuntu + Nginx + 代码)。
- 类似“安装包”,用于创建容器。
- 容器(Container)
- 镜像的运行实例,一个独立进程。
- 可启动、停止、删除,资源隔离。
- 仓库(Registry)
- 存储镜像的地方,如 Docker Hub(官方仓库)或私有仓库。
三、安装 Docker
Ubuntu/CentOS:
# 一键安装脚本(官方推荐)
curl -fsSL https://get.docker.com | bash -s docker
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启
sudo systemctl enable docker
Windows/macOS:
下载Docker Desktop安装即可(图形化界面)。
四、快速上手
运行第一个容器
# 下载官方 Nginx 镜像
docker pull nginx
# 运行容器(-d 后台运行,-p 端口映射)
docker run -d -p 80:80 --name my-nginx nginx
访问 http://localhost:80 即可看到 Nginx 欢迎页。
常用命令
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器(包括已停止的)
docker stop <容器名> # 停止容器
docker start <容器名> # 启动已停止的容器
docker rm <容器名> # 删除容器
docker images # 查看本地镜像
docker rmi <镜像名> # 删除镜像
五、自定义镜像(Dockerfile)
编写 Dockerfile
示例:打包一个 Python 应用
# 使用官方 Python 基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制代码到容器
COPY . .
# 安装依赖
RUN pip install -r requirements.txt
# 启动命令
CMD ["python", "app.py"]
构建镜像
docker build -t my-python-app:latest .
运行容器
docker run -d -p 5000:5000 my-python-app
六、数据持久化(Volume)
挂载本地目录到容器
docker run -d -v /宿主机目录:/容器目录 mysql
创建 Docker 卷
docker volume create my-vol
docker run -d -v my-vol:/容器目录 mysql
七、容器网络
- 默认网络
- 容器默认通过 bridge 网络通信。
自定义网络
docker network create my-net
docker run -d --network my-net --name web nginx
docker run -d --network my-net --name db mysql
- 同一网络内的容器可通过容器名互相访问(如 web 访问 db:3306)。
八、Docker Compose(多容器编排)
编写 docker-compose.yml
示例:启动一个 WordPress + MySQL 应用
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: example
wordpress:
image: wordpress:latest
ports:
- "8000:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_PASSWORD: example
volumes:
db_data:
启动服务
docker-compose up -d # 启动
docker-compose down # 停止并清理
九、实用技巧
清理无用资源
docker system prune -a --volumes
查看日志
docker logs -f <容器名>
进入容器调试
docker exec -it <容器名> /bin/bash
十、常见问题
权限问题:在 Linux 上,普通用户运行 Docker 需加入 docker 用户组:
sudo usermod -aG docker $USER
端口冲突:修改 -p 宿主机端口:容器端口 中的宿主机端口。
镜像下载慢:配置国内镜像源(如阿里云镜像加速器)。
总结:掌握以上内容,你已能应对 90% 的 Docker 使用场景!动手实践是关键,尝试打包自己的应用并发布到 Docker Hub 吧!
热门推荐
生化危机克莱尔:从平凡少女到坚强战士的蜕变之旅
杏仁在食品加工中的应用探讨
如何区分英语中的who、whom和whose?
《原始传奇》为什么还能火?都2025年了,为什么还有人玩传奇?
锤炼体能从何处着手?速度训练助力突破瓶颈
为何古代双瞳孔备受追捧?史上有此眼睛的8人,不是圣人就是帝王
任意形状截面的螺线管磁场分布特点
长隆虎鲸多次撞墙,专家却说适当摩擦有益健康?幸好听了小孩哥一句劝
水电管应该铺在地暖上还是下?一文讲清原因!
如何规划客厅不吊顶时的水管走向?确保布局合理性的实用指南
《黄鹤楼送孟浩然之广陵》原文及翻译(新版多篇)
金庸《天龙八部》:一部写尽人性与命运的武侠史诗
手术一动,人就垮了吗?5种病没必要开刀,别让无知害自己
一文精通Word硕士论文页眉设置:从基础到进阶的完整指南
集成电路光刻涂胶工艺详解
民间关于童子的总结_童子的典故
古希腊神话三大酷刑之:西西弗斯的苦役
感谢一个人一直陪伴和支持的句子(精选60句)
番茄怎么吃更营养
阴阳平衡的生活:中医养生的日常法则
在职博士申请中如何选择导师?
慈善公司如何进行合理的资金运作?这种运作方式有哪些影响?
让卖房变得更简单:7种专业摄影技巧一定要学,让买家爱上你的房屋
清晨的北寺塔
“粤语语料+大模型” 创新融合,“人文科学+科技创新”传承保护粤语
如何在HTML中添加视频并确保其流畅播放
蘑菇能放冰箱吗?保存蘑菇的最佳方法是什么?
膝关节积液是什么原因造成的症状
如何培养孩子的「自主学习」能力?6大关键策略!
精神分析基础:想象界、象征界、实在界