Docker 核心价值是 “一次构建,到处运行”,通过容器技术解决环境一致性问题。本教程从“安装→核心概念→实战操作”,全程极简,新手也能快速上手。

在这里插入图片描述

一、先搞懂3个核心概念(不用死记,实战中理解)

概念通俗解释类比
镜像(Image)容器的“模板”,包含运行程序所需的代码、依赖、环境配置系统安装ISO文件
容器(Container)镜像的“运行实例”,是独立的可执行环境(隔离的进程)虚拟机(但更轻量)
仓库(Repository)存放镜像的“仓库”,类似 GitHub 存代码应用商店

二、第一步:安装 Docker(3分钟搞定)

Docker 支持 Windows、Mac、Linux,推荐用 Docker Desktop(含图形界面+命令行),一键安装:

1. 下载安装

  • 官网地址:https://www.docker.com/products/docker-desktop/
  • 安装后启动:Windows 需开启“Hyper-V”(安装时自动提示),Mac 直接启动即可。

2. 验证安装成功

打开终端(Windows 用 PowerShell,Mac/Linux 用 Terminal),输入以下命令,出现版本号即成功:

docker --version  # 查看 Docker 版本
docker info       # 查看 Docker 系统信息(可选)

三、核心实战:从“拉取镜像”到“运行容器”

全程用 Nginx(网页服务器) 做示例,零配置体验 Docker 核心流程。

1. 拉取镜像(从仓库下载模板)

Docker 官方仓库(Docker Hub)有海量现成镜像,拉取 Nginx 官方镜像:

docker pull nginx:latest  # latest 表示“最新版本”,可省略(默认拉取latest)
  • 执行后会自动下载镜像文件,耐心等待(网速快则10秒完成)。
  • 查看已下载的镜像:
    docker images  # 列出本地所有镜像
    
    输出类似:
    REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
    nginx        latest    605c77e624dd   2 weeks ago    142MB
    

2. 运行容器(启动镜像实例)

用下载的 Nginx 镜像启动容器,并映射端口(让本地能访问容器内的服务):

# 命令格式:docker run [参数] 镜像名:标签
docker run -d -p 8080:80 --name mynginx nginx
  • 参数解释(极简版):
    • -d:后台运行容器(守护进程模式,不占用终端)
    • -p 8080:80:端口映射(本地 8080 端口 ↔ 容器内 80 端口,Nginx 默认用 80 端口)
    • --name mynginx:给容器起个名字(方便后续操作,可选)
    • nginx:镜像名(默认用 latest 标签)

3. 验证容器运行

  • 查看运行中的容器:
    docker ps  # 列出正在运行的容器(加 -a 显示所有容器,包括停止的)
    
    输出类似(看到 mynginxSTATUSUp 即成功):
    CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                  NAMES
    a1b2c3d4e5f6   nginx     "/docker-entrypoint.…"   30 seconds ago  Up 29 seconds  0.0.0.0:8080->80/tcp   mynginx
    
  • 访问 Nginx 服务:
    打开浏览器,输入 http://localhost:8080,看到 Nginx 欢迎页,说明容器运行正常!

四、常用操作:容器的“启动/停止/删除”

1. 停止容器

docker stop mynginx  # 用容器名停止(也可以用容器ID,比如 a1b2c3d4e5f6)

2. 重启容器

docker restart mynginx

3. 查看容器日志(排错用)

docker logs mynginx  # 查看容器的运行日志
docker logs -f mynginx  # 实时跟踪日志(按 Ctrl+C 退出)

4. 进入容器内部(可选,调试用)

docker exec -it mynginx /bin/bash  # 进入容器的命令行(-it 表示交互式终端)
  • 进入后可以执行 Linux 命令(比如 ls /usr/share/nginx/html 查看网页文件)
  • 退出容器:输入 exit

5. 删除容器(需先停止)

docker stop mynginx  # 先停止容器(若已停止可跳过)
docker rm mynginx    # 删除容器(容器名/ID 均可)

6. 删除镜像(需先删除依赖该镜像的容器)

docker rmi nginx  # 删除 Nginx 镜像(镜像名/ID 均可)

五、进阶实战:自己构建镜像(Dockerfile 入门)

前面是用别人的镜像,现在自己做一个“自定义 Nginx 页面”的镜像。

1. 准备文件

  • 新建一个文件夹(比如 my-docker-demo),进入该文件夹:
    mkdir my-docker-demo && cd my-docker-demo
    
  • 在文件夹内创建 2 个文件:
    1. index.html(自定义网页内容):
      <!DOCTYPE html>
      <html>
      <head><title>我的第一个Docker镜像</title></head>
      <body><h1>Hello Docker!</h1></body>
      </html>
      
    2. Dockerfile(镜像构建规则,文件名必须大写,无后缀):
      # 基础镜像(基于官方 Nginx)
      FROM nginx:latest
      # 将本地的 index.html 复制到容器的 Nginx 网页目录
      COPY index.html /usr/share/nginx/html/index.html
      # 暴露 80 端口(可选,仅作说明)
      EXPOSE 80
      

2. 构建镜像

my-docker-demo 文件夹下执行(注意最后有个 .,表示当前目录):

docker build -t mynginx:v1 .  # -t 给镜像打标签(名字:版本)
  • 构建成功后,用 docker images 查看,会新增 mynginx:v1 镜像。

3. 运行自定义镜像

docker run -d -p 8081:80 --name mynginx-v1 mynginx:v1
  • 浏览器访问 http://localhost:8081,就能看到自定义的 Hello Docker! 页面啦!

六、总结:Docker 核心流程

  1. 拉取镜像(docker pull)→ 2. 运行容器(docker run)→ 3. 操作容器(启动/停止/删除)→ 4. 自定义镜像(Dockerfile + docker build

通过这两个实战(运行官方镜像、构建自定义镜像),你已经掌握了 Docker 80% 的日常用法!后续可深入学习:

  • 镜像仓库:推送自己的镜像到 Docker Hub/GitLab Registry
  • 容器编排:Docker Compose(管理多容器应用,比如前端+后端+数据库)
  • 数据持久化:-v 参数挂载本地目录到容器(避免容器删除后数据丢失)

如果遇到问题,优先用 docker --help 查看命令文档,或搜索“Docker + 问题关键词”(Docker 社区非常活跃)。

更多推荐