当前位置: 首页 > news >正文

Docker入门基础使用

一、什么是 Docker?

Docker 是一个开源容器化平台,可以将应用及其依赖打包成一个可移植的容器,在任何系统上运行而无需修改。

优势:

  • 轻量:共享主机内核,资源占用小
  • 快速启动:比虚拟机启动快很多
  • 可移植:跨平台运行一致性高
  • 易于部署:Dev → Test → Prod 一致性

二、Docker 基本组件

名称

说明

Image

镜像:应用的只读模板(如 Ubuntu + Python)

Container

容器:镜像的运行实例

Dockerfile

构建镜像的脚本文件

Docker Hub

官方镜像仓库(registry.docker.io)

Volume

数据卷,容器与主机之间共享数据

Network

容器之间通信的网络桥梁


三、Docker 常用命令

镜像相关

docker pull <镜像名>           # 拉取镜像
docker images                  # 查看本地镜像
docker rmi <镜像ID或名>        # 删除镜像
docker build -t <镜像名> .     # 构建镜像(基于 Dockerfile)

容器相关

docker run -it <镜像> /bin/bash   # 启动交互式容器
docker run -d -p 8080:80 <镜像>   # 后台运行,端口映射
docker ps                         # 查看运行中的容器
docker ps -a                      # 查看所有容器
docker stop <容器ID>              # 停止容器
docker rm <容器ID>                # 删除容器
docker exec -it <容器ID> bash     # 进入正在运行的容器

卷与网络

docker volume create mydata                 # 创建卷
docker run -v mydata:/app/data ...          # 使用卷
docker network create mynetwork             # 创建网络
docker run --network=mynetwork ...          # 指定网络

四、Dockerfile 基础语法

# 基础镜像
FROM python:3.10# 维护者
LABEL maintainer="yourname@example.com"# 设置工作目录
WORKDIR /app# 复制文件
COPY requirements.txt .# 安装依赖
RUN pip install -r requirements.txt# 复制项目代码
COPY . .# 暴露端口
EXPOSE 8000# 启动命令
CMD ["python", "main.py"]

五、Docker Compose 简介(多容器管理)

📄 docker-compose.yml 示例

version: '3.8'services:web:build: .ports:- "8000:8000"volumes:- .:/appdb:image: postgres:15environment:POSTGRES_USER: userPOSTGRES_PASSWORD: password

常用命令

docker-compose up -d         # 后台启动所有服务
docker-compose down          # 停止并清除所有服务
docker-compose logs -f       # 查看日志

六、镜像优化建议

  • 使用官方 slim 或 alpine 镜像:体积小
  • 使用 .dockerignore 避免复制无用文件
  • 多阶段构建(multi-stage build)减少最终镜像体积
  • 合理合并 RUN 命令减少镜像层

七、常见问题排查

问题

解决方式

镜像拉取慢 / 超时

配置国内镜像源(如阿里云、USTC)

容器启动后立即退出

检查 CMD 或 ENTRYPOINT 是否正确

端口无法访问

确认端口是否映射,容器是否启动成功

文件同步不生效

检查 volume 是否挂载正确

容器内没有 curl / ping

安装缺失工具:apt-get update && apt-get install -y curl


八、Windows 下 Docker 使用建议

  • 安装 Docker Desktop for Windows
  • 默认使用 WSL2 后端:性能好,兼容性好
  • 镜像路径默认存储在:
C:\Users\<用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx
  • 镜像清理需用 docker system prune -a

九、学习资源推荐

资源类型

推荐

官方文档

Docker Docs

中文文档

https://yeasy.gitbook.io/docker_practice/

GitHub 实例

https://github.com/docker/awesome-compose

http://www.dtcms.com/a/305030.html

相关文章:

  • 【vue(2)插槽】
  • ZKmall开源商城中台架构实践:API 网关与服务治理如何撑起电商技术骨架
  • vue3实战九、vue3+vue-cropper实现头像修改
  • 【Linux】批量处理多个用户的 sudo 权限问题
  • 【STM32开发】-基础开发笔记(STM32F103,HAL库开发)
  • 【ComfyUI学习笔记04】案例学习:局部重绘 - 上
  • 墨者:XPath注入漏洞实战
  • 第二十五节 MATLAB矩阵的加法和减法、除法(左,右)矩阵
  • Arduino声控RGB矩阵音乐节奏灯DIY全攻略
  • 解密数据结构之二叉树
  • Android11平台下rk3568的ATGM332D定位模块适配
  • 全志T507平台GPIO 控制(二)
  • OpenCV图像算数运算可莉版
  • bash命令创建新conda环境
  • Kubernetes自动扩容方案
  • 力扣-104. 二叉树的最大深度
  • Linux系统的虚拟控制台介绍(桌面卡死的拯救方案)
  • 深入探索爬虫与自动化脚本:释放效率的利器
  • 手写简易Spring框架
  • 万字详解——OSI七层模型:网络通信的完整架构解析
  • mysql 之多表
  • others-Facebook落地页自建归因逻辑
  • 如何快速把Clickhouse数据同步到Mysql
  • 解决百度网盘双击没反应打不开的问题
  • Element Plus常见基础组件(二)
  • 16大工程项目管理系统对比:开源与付费版本
  • 科研小tip3|Windows中的CompressAi下载与使用
  • leaflet中绘制轨迹线的大量轨迹点,解决大量 marker 绑定 tooltip 同时显示导致的性能问题
  • 机器学习-十大算法之一线性回归算法
  • 通用算法与深度学习基础