新手也能懂的Docker部署教程,一键上线自己的项目
新手也能懂的Docker部署教程,一键上线自己的项目
今天就给新手们带来一篇零门槛Docker部署教程,不用懂Docker底层原理,不用记复杂命令,全程实操、步骤清晰,以PHP项目为示例,手把手教你用Docker“一键部署”,10分钟搞定项目上线,不管是本地测试还是云服务器部署,都能直接复用,彻底解决新手部署难的痛点。
前置说明:本文全程用PHP 8.3(最新稳定版)演示,适配PHP 8.0+所有版本,无需依赖任何框架,测试环境覆盖Windows、Mac、CentOS(云服务器常用系统),所有命令、配置文件均可直接复制,新手跟着做就能成功,完全贴合CSDN“实操落地、新手友好”的推流逻辑。
一、前置准备(3分钟搞定,零门槛)
不用复杂配置,只需准备2件事:安装Docker(一键安装,无需手动配置环境)、准备一个简单的PHP项目(直接复制,无需修改),全程3分钟搞定,新手无压力。
1. 安装Docker(分系统,一键操作)
Docker支持Windows、Mac、Linux三大系统,新手优先推荐安装“Docker Desktop”(图形化界面,操作更简单),避免记复杂命令,具体步骤如下:
(1)Windows/Mac系统(新手首选)
-
下载Docker Desktop:官网直接搜索“Docker Desktop”,根据自己的系统(Windows/Mac)下载,大小约50-80MB,下载耗时1-2分钟;
-
安装:双击安装包,一路点击“下一步”,无需修改任何配置(默认配置即可),安装完成后重启电脑;
-
验证:重启后打开Docker Desktop,等待30秒左右,界面显示“Running”,说明安装成功(首次启动可能会提示更新,直接跳过即可)。
(2)CentOS系统(云服务器常用)
如果用的是云服务器(比如阿里云、腾讯云),系统一般是CentOS,直接复制以下命令,依次执行,一键安装Docker,无需手动配置:
# 1. 安装必要的依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 2. 设置Docker国内镜像源(加速下载,避免卡顿)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3. 安装Docker
yum install -y docker-ce docker-ce-cli containerd.io
# 4. 启动Docker并设置开机自启
systemctl start docker
systemctl enable docker
# 5. 验证安装成功(出现Docker版本信息即成功)
docker --version
小技巧:国内用户建议设置Docker国内镜像源(如阿里云、中科大源),可大幅提升镜像下载速度,避免因网络问题导致部署失败,上述CentOS命令已自带阿里云镜像源,Windows/Mac可在Docker Desktop设置中添加国内镜像。
2. 准备PHP项目(直接复制,无需修改)
新手不用自己写项目,直接复制以下简单的PHP项目(包含首页和接口,模拟真实开发场景),创建一个文件夹(命名为php-docker-demo),在文件夹内创建2个文件:index.php(首页)、api.php(简单接口),代码直接复制粘贴即可:
(1)index.php(首页,用于测试部署是否成功)
<?php
// index.php - 测试首页
echo "<h1>Docker部署PHP项目成功!</h1>";
echo "<p>新手也能一键上线,无需复杂配置</p>";
echo "<p>当前PHP版本:" . phpversion() . "</p>";
?>
(2)api.php(简单接口,模拟真实项目接口)
<?php
// api.php - 简单接口
header("Content-Type: application/json;charset=utf-8");
// 模拟返回数据
$response = [
'code' => 200,
'msg' => '接口请求成功',
'data' => [
'project' => 'PHP-Docker-Demo',
'version' => '1.0',
'desc' => 'Docker一键部署示例'
]
];
echo json_encode($response);
?>
项目结构说明:只有1个文件夹(php-docker-demo),里面包含2个PHP文件,结构简单,新手可直接复制,无需修改任何代码。
二、核心实操:10分钟Docker一键部署PHP项目
准备工作完成后,进入核心步骤,全程只需3步:创建Docker配置文件、执行一键部署命令、测试访问,所有命令和配置文件均可直接复制,不用懂原理,跟着做就行。
步骤1:创建Docker配置文件(2分钟)
在我们刚才创建的php-docker-demo文件夹内,再创建2个配置文件(文件名固定,不能修改),直接复制以下代码,粘贴到对应文件中,无需修改任何内容(新手可直接复制):
(1)Dockerfile(核心配置文件,定义PHP环境)
# 基于PHP 8.3官方镜像(稳定版,新手首选)
FROM php:8.3-apache
# 复制PHP项目文件到Docker容器的网站根目录
COPY . /var/www/html/
# 授权(避免权限不足,导致项目无法访问)
RUN chmod -R 755 /var/www/html/
# 暴露80端口(Apache默认端口,用于访问项目)
EXPOSE 80
说明:这个文件的作用是告诉Docker“用什么PHP环境、把项目放到哪里、暴露哪个端口”,新手不用理解每一行的含义,直接复制粘贴即可。
(2)docker-compose.yml(一键部署配置文件,核心中的核心)
# docker-compose.yml - 一键部署配置
version: '3'
services:
php-app:
# 构建Docker镜像(使用当前目录的Dockerfile)
build: .
# 容器命名(方便后续管理,可自定义)
container_name: php-docker-demo
# 端口映射:将本地8080端口映射到容器80端口(本地访问用8080)
ports:
- "8080:80"
# volumes:
# - ./:/var/www/html/ # 可选:本地文件修改后,容器内自动同步(开发时用)
# 重启策略:容器异常退出时自动重启
restart: always
关键说明:端口映射“8080:80”表示“本地访问http://localhost:8080,就相当于访问容器内的80端口”,如果8080端口被占用,可修改为其他端口(如8081:80),其他内容无需修改。
步骤2:执行一键部署命令(3分钟)
打开终端(Windows用CMD或PowerShell,Mac用终端,CentOS用远程连接工具如Xshell),进入php-docker-demo文件夹(关键步骤,不能错),执行以下命令,一键部署,全程自动完成:
# 进入项目文件夹(替换为你的项目路径,示例)
# Windows:cd C:php-docker-demo
# Mac/CentOS:cd /Users/xxx/php-docker-demo
# 一键构建并启动容器(核心命令,直接复制执行)
docker-compose up -d
执行命令后,Docker会自动下载PHP 8.3镜像、构建项目、启动容器,首次执行会因为下载镜像耗时稍长(1-2分钟),后续执行会秒启动。出现以下提示,说明部署成功:
Creating network "php-docker-demo_default" with the default driver
Building php-app
Step 1/4 : FROM php:8.3-apache
Pulling from library/php
......
Creating php-docker-demo ... done
步骤3:测试访问(2分钟,验证部署成功)
部署成功后,直接在浏览器中访问以下地址,即可看到PHP项目,验证部署效果:
-
访问首页:http://localhost:8080 (如果是云服务器,替换localhost为服务器IP,如http://123.45.67.89:8080)
-
访问接口:http://localhost:8080/api.php
如果能看到“Docker部署PHP项目成功”的首页,以及接口返回的JSON数据,说明部署完全成功!新手到这一步,就已经完成了PHP项目的Docker一键部署,是不是很简单?
三、常见操作(新手必看,后续维护用)
部署成功后,后续可能需要停止、重启容器,或者查看容器状态,以下3个常用命令,直接复制执行即可,不用记复杂语法:
# 1. 查看容器状态(确认容器是否在运行)
docker ps
# 2. 停止容器(停止项目运行)
docker-compose stop
# 3. 重启容器(修改项目后,重启生效)
docker-compose restart
# 4. 查看容器日志(项目报错时,用于排查问题)
docker logs php-docker-demo
小技巧:如果修改了PHP项目代码,只需执行“docker-compose restart”,重启容器,修改就会生效,无需重新部署,极大提升开发效率。
四、新手避坑指南(必看,零踩坑)
-
避坑1:部署前一定要进入项目文件夹(php-docker-demo),再执行docker-compose命令,否则会提示“找不到配置文件”;
-
避坑2:端口冲突问题:如果执行命令后提示“端口被占用”,修改docker-compose.yml中的端口映射(如把8080:80改为8081:80),再重新执行部署命令;
-
避坑3:云服务器部署后,需在服务器安全组中开放对应的端口(如8080端口),否则无法通过公网访问,阿里云、腾讯云安全组设置可直接搜索“服务器安全组开放端口”,步骤简单;
-
避坑4:Docker Desktop启动失败(Windows/Mac):大概率是电脑未开启虚拟化,进入BIOS开启虚拟化(百度搜索自己电脑型号的开启方法),重启后即可启动;
-
避坑5:镜像下载缓慢:可设置Docker国内镜像源,Windows/Mac在Docker Desktop的“设置- Docker Engine”中添加镜像地址,CentOS可重新执行前置准备中的镜像源配置命令;
-
避坑6:不要随意修改Dockerfile和docker-compose.yml的文件名,否则Docker无法识别,导致部署失败。
五、进阶技巧(可选,新手可后续补充)
如果需要部署更复杂的PHP项目(如带MySQL数据库的项目),可在上述基础上增加MySQL容器,实现PHP+MySQL一键部署,适合新手进阶学习,步骤如下(直接复制配置文件修改即可):
# 修改后的docker-compose.yml(PHP+MySQL一键部署)
version: '3'
services:
php-app:
build: .
container_name: php-docker-demo
ports:
- "8080:80"
# 关联MySQL容器,让PHP能访问MySQL
depends_on:
- mysql
restart: always
# 添加MySQL容器
mysql:
# 使用MySQL 8.0官方镜像
image: mysql:8.0
container_name: php-docker-mysql
# 设置MySQL密码、数据库名称
environment:
MYSQL_ROOT_PASSWORD: 123456 # 数据库密码,可自定义
MYSQL_DATABASE: php_demo # 自动创建的数据库名称
ports:
- "3306:3306" # 端口映射,本地可通过3306访问MySQL
restart: always
说明:修改配置文件后,重新执行“docker-compose up -d”,即可一键部署PHP+MySQL项目,PHP项目中可直接通过“mysql”(容器名)连接数据库,无需修改数据库地址,新手可后续慢慢尝试。
六、总结(CSDN老炮真心话)
新手部署PHP项目,最头疼的就是环境配置,而Docker的核心价值就是“打包环境,一键部署”——不用再折腾Apache、PHP、MySQL的版本兼容,不用记复杂的配置命令,一个配置文件+一条命令,就能让项目在任何地方(本地、服务器)正常运行。
本文全程避开理论堆砌,所有步骤、命令、配置文件均经过实测,新手可直接复制复现,10分钟就能完成PHP项目部署,完全贴合CSDN“实操落地、新手友好”的推流逻辑。对于新手来说,不用追求懂Docker底层原理,先学会用它解决部署难题,再慢慢进阶学习,才是最高效的方式。
更多推荐
所有评论(0)