Windows Docker使用实战教程

Windows Docker使用实战教程

一、Docker安装:3步完成环境搭建

先把Docker装到电脑上,就像装QQ一样简单。注意:Windows 10/11专业版/企业版需要开启Hyper-V,家庭版可以用WSL 2后端。

  1. 下载安装包 :打开Docker官网,下载Windows版Docker Desktop,双击安装包。

  2. 配置选项:安装时勾选"Use WSL 2 instead of Hyper-V"(家庭版必选),一路点击"OK",等待安装完成后重启电脑。

  3. 验证安装:重启后打开"命令提示符"(CMD)或"PowerShell",输入以下命令,如果出现版本信息,说明安装成功:

bash 复制代码
docker --version
docker-compose --version

二、核心概念:用"快递盒"理解镜像和容器

不用记复杂定义,记住这个类比:

镜像(Image):像快递盒的"模板",里面包含了运行一个程序需要的所有东西(比如操作系统、软件、配置)。比如"Nginx镜像"就是装好了Nginx服务器的模板。

容器(Container):用"镜像模板"造出来的"快递盒",是可以运行的独立实例。一个镜像可以造多个容器,就像一个蛋糕模具可以做多个蛋糕。

三、常用命令实战:从拉取到运行

用实际操作学命令,每个命令都配"做什么+代码+效果"。

1. 拉取第一个镜像:Hello World

从Docker仓库(类似应用商店)下载一个测试镜像,输入命令:

bash 复制代码
docker pull hello-world

效果:终端会显示下载进度,完成后输入docker images,能看到列表里多了"hello-world"镜像。

2. 运行第一个容器

用刚才下载的镜像启动一个容器,输入:

bash 复制代码
docker run hello-world

效果:终端会输出一段欢迎信息,说明容器成功运行!这时候输入docker ps -a,能看到刚运行过的容器(状态为Exited,因为它是测试程序,执行完就退出了)。

3. 运行一个"一直活着"的容器:Nginx

Nginx是常用的网页服务器,我们让它在容器里一直运行:

bash 复制代码
docker run -d -p 8080:80 --name my-nginx nginx

命令解释:

  • -d:后台运行容器(不会占着终端)

  • -p 8080:80:把容器的80端口映射到电脑的8080端口(访问电脑的8080端口就等于访问容器的80端口)

  • --name my-nginx:给容器起个名字叫"my-nginx",方便后续操作

效果:打开浏览器输入http://localhost:8080,能看到Nginx的默认欢迎页面!

4. 容器常用操作

操作目的 命令代码
查看正在运行的容器 docker ps
停止my-nginx容器 docker stop my-nginx
启动已停止的my-nginx docker start my-nginx
删除my-nginx容器(需先停止) docker rm my-nginx
删除nginx镜像(需先删除所有用它的容器) docker rmi nginx

四、实战进阶:用Docker Compose部署多服务

如果需要同时运行多个服务(比如Web服务+数据库),用Docker Compose更方便,只需一个配置文件。

案例:部署"Web+MySQL"服务

  1. 创建配置文件 :新建一个文件夹(比如叫"docker-demo"),在里面创建一个名为docker-compose.yml的文件,写入以下内容:
yaml 复制代码
version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:  # 把电脑的文件夹映射到容器,方便修改网页内容
      - ./html:/usr/share/nginx/html
    depends_on:  # 依赖mysql服务,会先启动mysql
      - mysql

  mysql:
    image: mysql:5.7
    ports:
      - "3306:3306"
    environment:  # 设置MySQL的默认密码和数据库
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: testdb
    volumes:
      - mysql-data:/var/lib/mysql  # 持久化数据,容器删除后数据不丢失

volumes:
  mysql-data:  # 定义数据卷,用于存储MySQL数据

创建网页文件 :在"docker-demo"文件夹里新建"html"子文件夹,在里面创建index.html

html 复制代码
<!DOCTYPE html>
<html>
<body>
<h1>Docker Compose 测试!</h1>
<p>连接的MySQL数据库已启动</p>
</body>
</html>

启动服务:打开CMD,进入"docker-demo"文件夹,输入命令:

bash 复制代码
docker-compose up -d

效果:Docker会自动下载Nginx和MySQL镜像,启动两个容器。访问http://localhost:8080能看到我们写的网页,用MySQL客户端连接localhost:3306,密码123456,能看到testdb数据库。

停止服务:输入以下命令停止并删除容器(数据卷会保留):

bash 复制代码
docker-compose down

五、常见问题解决

  • 问题1:启动Docker时提示"WSL 2未安装" :打开PowerShell(管理员模式),输入wsl --install,重启电脑即可。

  • 问题2:端口被占用(bind: address already in use) :把命令里的端口号改一下,比如把8080改成8081(-p 8081:80)。

  • 问题3:容器启动后看不到效果 :用docker logs 容器名查看日志,比如docker logs my-nginx,排查错误原因。

相关推荐
邮专薛之谦6 小时前
Kotlin 全知识点复习+详细梳理
windows·kotlin·android studio·idea
自动化代码美学6 小时前
【Python3.13】官网学习之控制流
开发语言·windows·python·学习
知己808010 小时前
docker搭建图数据库neo4j
数据库·docker·neo4j
qq_21539789710 小时前
docker 安装 redis
redis·docker·容器
ink@re10 小时前
Docker环境搭建与容器管理实战:从部署到编排的完整指南
运维·docker·容器
q***333711 小时前
新版 WSL2 2.0 设置 Windows 和 WSL 镜像网络教程
windows
huisheng_qaq12 小时前
【RocketMq源码篇-02】rocketmq集群搭建详细过程(docker版-2主2从)
docker·rocketmq·rocketmq集群·rocketmq源码·2主2从
qq_21539789712 小时前
docker 管理工具 Portainer安装
运维·服务器·docker
凤凰战士芭比Q13 小时前
Docker安装与常用命令
linux·运维·docker·容器