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

Windows / Linux 中如何使用 Docker 部署项目

适合开发者从零起步理解 Docker + Compose 实践流程


🧩 一、Docker 是什么?

Docker 可以理解为一个“轻量级虚拟机系统”,
它让你把应用及其依赖(Python、Node、数据库等)打包成镜像
然后随时随地启动运行,避免“我这能跑你那不能跑”的问题。


🪟 二、Windows 下:从零部署项目到 Docker

1️⃣ 安装 Docker Desktop

  1. 看这篇文章:
    👉 在 Windows 上安装 Docker Desktop

  2. 安装完成后,打开 PowerShell 测试:

    docker version
    

    若显示版本号说明安装成功。

💡Docker Desktop 实际运行在 WSL2 虚拟机中,本质是 Linux 环境。


2️⃣ 准备项目

假设我们要部署一个简单的 Flask 项目:

C:\myproject├─ app.py├─ requirements.txt└─ Dockerfile

app.py

from flask import Flask
app = Flask(__name__)@app.route('/')
def home():return "Hello Docker from Windows!"

requirements.txt

flask

3️⃣ 编写 Dockerfile

FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
EXPOSE 8080
CMD ["python", "app.py"]

4️⃣ 构建镜像

cd C:\myproject
docker build -t my-flask-app .

5️⃣ 运行容器

docker run -d -p 8080:8080 --name flask-demo my-flask-app

访问
👉 http://localhost:8080


6️⃣ Windows 文件挂载

例如想让容器读取本地日志:

docker run -d -p 8080:8080 \-v /c/myproject/logs:/app/logs \my-flask-app

注意路径前的 /c/... 格式,这是 Windows Docker 的路径映射方式。


🐧 三、Linux 下(以 CentOS7 为例)

1️⃣ 安装 Docker CE

sudo yum remove docker docker-common docker-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce
sudo systemctl enable docker
sudo systemctl start docker
docker version

2️⃣ 创建项目目录

mkdir -p /opt/my-flask-app
cd /opt/my-flask-app

app.py

from flask import Flask
app = Flask(__name__)@app.route('/')
def home():return "Hello Docker from Linux!"

requirements.txt

flask

Dockerfile

FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
EXPOSE 8080
CMD ["python", "app.py"]

3️⃣ 构建与运行

docker build -t my-flask-app .
docker run -d -p 8080:8080 --name flask-demo my-flask-app

浏览器访问:

http://<服务器IP>:8080

4️⃣ 映射宿主机路径(日志或配置)

docker run -d \-p 8080:8080 \-v /home/tomcatlog/jkwh_app_out.log:/app/logs/current.log \-v /home/tomcatlog/backuplog:/app/backuplog \my-flask-app

⚙️ 四、docker-compose:让部署更简单

1️⃣ 为什么需要 docker-compose?

如果一个项目包含多个服务,比如:

  • Flask Web 后端
  • MySQL 数据库
  • Redis 缓存
    那你得启动三个容器,命令很繁琐。

docker-compose.yml 文件就可以一键启动全部。


2️⃣ docker-compose.yml 示例

在项目根目录下新建:

version: "3.8"services:web:build: .container_name: flask-webports:- "8080:8080"depends_on:- db- redisenvironment:- DATABASE_URL=mysql://root:123456@db/mydb- REDIS_HOST=redisdb:image: mysql:8container_name: mysql-dbrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: mydbvolumes:- db_data:/var/lib/mysqlredis:image: redis:latestcontainer_name: redis-cacherestart: alwaysvolumes:db_data:

3️⃣ 启动与管理命令

# 启动全部服务(后台模式)
docker compose up -d# 停止并清理
docker compose down# 查看状态
docker compose ps# 查看实时日志
docker compose logs -f

4️⃣ 在你的日志可视化系统中使用

比如你要部署的日志系统 /opt/log-visualizer,可以这样写:

version: "3.8"services:log-viewer:build: .container_name: log-viewerports:- "8080:8080"volumes:- /home/tomcatlog/jkwh_app_out.log:/app/logs/current.log- /home/tomcatlog/backuplog:/app/backuplogrestart: always

然后执行:

docker compose up -d

即可部署运行。

后期如果你想加入 ElasticSearch、Grafana 等模块,
只需在这个文件中新增 services: 节点,非常方便。


🧠 五、Docker 常用命令速查

操作命令
查看运行中容器docker ps
查看所有容器docker ps -a
查看容器日志docker logs -f 容器名
进入容器终端docker exec -it 容器名 /bin/bash
停止容器docker stop 容器名
删除容器docker rm 容器名
删除镜像docker rmi 镜像名
查看占用空间docker system df

🧩 六、Windows 与 Linux 对比总结

项目WindowsLinux
安装方式Docker Desktop(图形化)Docker CE(命令行)
容器环境运行在 WSL2 虚拟机原生 Linux
文件路径/c/...直接用 /home/...
网络访问localhost使用服务器 IP
性能稍慢更高效、更稳定
推荐用途开发测试正式部署

✅ 七、总结一句话

工具作用
Dockerfile定义“镜像怎么构建”
docker run启动单个容器
docker-compose.yml描述“多个容器如何协作运行”
docker compose up -d一键部署整套系统
http://www.dtcms.com/a/498671.html

相关文章:

  • JPA 学习笔记 4:JPQL
  • Linux网络编程:Socket编程UDP
  • 详解Redis锁误删、原子性难题及Redisson加锁底层原理、WatchDog续约机制
  • 【Java 集合】核心知识点梳理
  • 郑州建设厅官方网站地方网站推广
  • 宁波网站建设建站厂家wordpress 站点描述
  • 兴扬汽车网站谁做的公司设计图
  • 上海石化有做网站设计的吗广西网络广播电视台直播
  • 网站和推广在一家做的好处卓智网络科技有限公司
  • 推广网站有哪些做网站销售水果
  • 产品网站推广淄博做网站建设的公司
  • 整站下载器 安卓版企业网站多大空间够用
  • 博罗做网站战队头像在线制作免费
  • 东莞专业网站建设推广欧洲c2c平台
  • 手机网站做指向沃尔玛网上商城可以用购物卡吗
  • 中国建设银行北京市互联网网站成都小程序开发公司找哪家
  • 电商网站要素如何提升网站营销力
  • 成都模板网站建设服务深圳创纪录暴雨19小时
  • 网站地图后缀响应式博客网站模板
  • 嘉兴企业网站模板聚美优品
  • 展示网站模版源码wordpress 2栏主题
  • 网站建设与排名网站广告位代码
  • 营销型企业网站策划方案村网站开设两学一做栏目
  • 靓号网建站百度推广手机app下载
  • WordPress网站打不开nginx关wordpress更新
  • 四川省住房与城乡建设厅网站官网wordpress 中文版 英文版
  • aspx网站模板手机模块网站
  • 单位网站建设程序网站建设与推广的实训报告
  • 什么网站可以做投资做网站需要关注哪些
  • 做网站补贴网页广告拦截