如何使用 Docker 快速部署一个网站?
介绍使用 Docker 部署网站的两种方法:直接运行现成服务镜像和自定义创建镜像。
以下是快速使用 Docker 部署网站的通用步骤:
方法1: 直接运行现成服务镜像
- 适用于静态网站或已有预构建服务
- 无需创建自定义镜像
- 步骤:
- 拉取服务镜像(如 Nginx):
docker pull nginx:latest #
- 运行容器并映射挂载网站目录(将网站文件即时挂载):
docker run -d -p 8080:80 -v /path/to/your/website:/usr/share/nginx/html nginx:latest #
- 其中:
-d
: 后台运行容器-p 8080:80
: 将宿主机的8080端口映射到容器的80端口(可选端口号)-v
: 挂载宿主机的网站目录到容器内部路径(使用路径需替换为实际位置)
- 其中:
- 访问网站:
- 在浏览器输入
http://localhost:8080
(映射端口更改时替换),或宿主机的公网IP(如云服务器场景)
- 在浏览器输入
- 拉取服务镜像(如 Nginx):
方法2: 自定义创建 Docker 镜像并运行
- 适用于需要代码内置的自定义项目
- 准备网站代码
- 准备好静态文件(如HTML/CSS文件),或应用程序代码
- 本地创建目录如
your-website
(确保含资源文件)
- 创建 Dockerfile 文件
- 在代码目录中添加
Dockerfile
(注意:文件名不包含额外后缀) ## 使用基础镜像 (Nginx适合网站托載) FROM nginx # 复制网站文件到默认宿主路径 COPY . /usr/share/nginx/html/ # 如前端框架项目需先 build,额外添加运行命令(例:npm run build在Node镜中)
- 注释:
- 如修改环境需额外配置(复制配置文件如
nginx.conf
参见命令参考):
- 如修改环境需额外配置(复制配置文件如
- 在代码目录中添加
- 构建自定义镜像
- 在当前 Dockerfile 目录下运行:
docker build -t my-web-image . #
-t
: 定义镜像名称(自定义如my-web-image
,不影响)
- 在当前 Dockerfile 目录下运行:
- 运行 Docker 容器
docker run -d -p 8080:80 my-web-image #
- 如远程服务器部署时监听0.0.0.0方便外部入口(非强制):#
docker run -d -p 0.0.0.0:8080:80 my-web-image
- 如远程服务器部署时监听0.0.0.0方便外部入口(非强制):#
- 访问网页验证
- 浏览器浏览
localhost:8080
,或公网(云服务器)的 IP+端口:#
- 浏览器浏览
重要注意事项
- 容器后台保持运行:若意外关机重启容器,建议使用
--restart=always
(详情参见 Docker Restart策略帮助文档:)。 - 加速部署场景:
- 云服务中使用已有镜像快速搭建(适合实验测试),无须Build过程。
- 前端应用中响应输出端口变化需同步后端(结合其他镜像等):