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 吧!
热门推荐
实物交割制度的优势与挑战解析
小便里的健康密码:五个特征反映身体状况
如何锻炼眼睛的睫状肌
什么是方向运动指数(DMI)?如何使用DMI指标?
DMI指标的定义是什么?DMI指标的应用方法有哪些?
如何快速切换输入法,提升打字效率与体验
如何处理架构设计的遗留问题
肌肉力量不足可能会导致的关节损伤的原因,针对下肢的力量如何训练?
红豆杉种植技术与管理要点详解
红豆杉怎么养殖(红豆杉的正确养殖方法)
芬苯达唑与化疗:兼容性探索
简述细胞器—液泡的基本内容
苹果醋的十大危害
宋词里最苍凉的一场雨,写尽人世悲欢离合,700多年无人能出其右
红豆杉的生长环境与特点(探索红豆杉的生态环境与形态特征)
【财经分析】疲弱经济数据打压市场人气 美国股市或开启新一轮回调
资金动向的影响因素是什么?如何根据资金动向进行投资?
如何预防静脉曲张
泡菊花枸杞茶的正确方法是什么?如何泡制才能发挥最大功效?
核聚变:清洁高效的未来能源
舌头有点麻麻的感觉是什么原因
小孩子做脑电图的步骤是什么
儿童做脑电图时能吃东西吗?医生的专业解答来了
脱模剂油性和水性的区别
认为车辆存在质量问题,应该如何举证?
315案例说丨认为车辆存在质量问题,应该如何举证?
阿托伐他汀常见的副作用有哪些?医生:这4种要特别注意
秋季养生应该多吃什么食物和水果
美国大使馆网上预约流程全攻略,轻松应对签证申请
北美博士的全奖和半奖是什么意思?