ref="/tag/2019/" style="color:#C468A7;font-weight:bold;">Docker如何部署项目:一步步教你轻松上线应用
你写好了网站,本地跑得挺顺,但一到服务器就各种依赖出问题?Python版本不对、Node环境没装、数据库连不上……这些问题,用Docker基本都能绕过去。它把你的项目和所有依赖打包成一个“盒子”,走到哪都能原样运行。
比如你在家写的Flask小博客,换个服务器可能半天都配不好环境。但用Docker,别人只需要一条命令就能启动,省事又稳定。
第一步:准备Docker环境
先确认服务器上装了Docker。大多数Linux系统可以用下面这条命令快速安装:
curl -fsSL https://get.docker.com | sh装完后执行 docker --version 看看有没有输出版本号,有就说明装好了。
第二步:写一个Dockerfile
Dockerfile 是构建镜像的“菜谱”。假设你有个简单的Node.js项目,根目录下新建一个叫 Dockerfile 的文件,内容这样写:
FROM node:16-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]这段的意思是:基于Node 16的轻量镜像,把代码复制进去,装好依赖,暴露3000端口,最后运行启动命令。
第三步:构建镜像
在项目根目录执行:
docker build -t my-web-app .这会根据Dockerfile生成一个叫 my-web-app 的镜像。构建过程就像打包快递,把代码、配置、环境全封进一个箱子里。
第四步:运行容器
镜像打好后,用下面命令启动容器:
docker run -d -p 80:3000 my-web-app这里 -d 是后台运行,-p 80:3000 把服务器的80端口映射到容器的3000端口。现在访问服务器IP,就能看到你的网页了。
第五步:配合Nginx反向代理(可选)
如果你还想跑别的服务,比如前端和后端分开,可以用Docker Compose统一管理。新建 docker-compose.yml 文件:
version: '3'
services:
frontend:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./frontend:/usr/share/nginx/html
backend:
build: ./backend
ports:
- "3000:3000"然后运行 docker-compose up -d,前后端一起启动,互不干扰。
实际使用中,很多人一开始觉得Docker复杂,但一旦习惯了,你会发现部署再也不是“碰运气”的事。改个版本、换台机器,照样秒启。
别忘了定期清理不用的镜像和容器,避免磁盘占满:
docker system prune -a一句话:Docker不是万能钥匙,但它能把部署这件麻烦事,变得像插U盘一样简单。