云耀云服务器L实例是新一代的轻量应用云服务器,专为中小企业和开发者设计,提供便捷的开箱即用体验。该产品提供丰富且经过严格筛选的应用镜像,可一键部署应用,极大程度简化了客户在云端构建电商网站、Web应用、小程序、学习环境以及各类开发测试等任务的过程。
PrestaShop 是一款开源电子商务网络应用程序,致力于为商家和客户提供最佳的购物车体验。它是用 PHP 编写的,高度可定制,支持所有主要支付服务,被翻译成多种语言并针对许多国家进行本地化,具有完全响应式设计(前台和后台)等。
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为云耀云服务器L实例,使用的应用镜像为Portainer 2.18.4;
3.在Portainer平台上部署PrestaShop电子商务系统。
服务器类别 | 应用镜像 | 内网IP地址 | Docker版本 | Portainer版本 | PrestaShop版本 |
---|---|---|---|---|---|
云耀云服务器L实例 | Docker可视化Portainer | 192.168.0.168 | 24.0.4 | 2.18.4 | 8.1.1 |
1.官网链接:https://www.huaweicloud.com/product/hecs-light.html
2.购买规格:
区域:华北—北京四;
应用镜像:Docker可视化-Portainer;
实例规格:2核2G/系统盘40G/峰值带宽 3Mbps/流量包400G;
实例名称:自定义即可,这里编辑为HECS-L-Portainer;
购买时长:1个月。
查看购买的云耀云服务器L实例状态,处在正常运行中。
点击远程登录云耀云服务器L实例
重置密码,点击右侧的重置密码选项,需要进行身份验证,选择手机验证后,即可重置密码成功。
检查Docker当前版本,云耀云服务器L实例使用Portainer应用镜像时,Docker环境已自动安装完毕,无需重新安装Docker环境。
root@hcss-ecs-f91c:~# docker version
Client: Docker Engine - Community
Version: 24.0.4
API version: 1.43
Go version: go1.20.5
Git commit: 3713ee1
Built: Fri Jul 7 14:50:55 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.4
API version: 1.43 (minimum version 1.12)
Go version: go1.20.5
Git commit: 4ffc614
Built: Fri Jul 7 14:50:55 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
检查docker compose版本,新版Docker自动集成安装了docker compose 工具。
root@hcss-ecs-f91c:~# docker compose version
Docker Compose version v2.19.1
检查本地当前运行容器,云耀云服务器L实例使用Portainer应用镜像时,会部署Docker环境以及创建portainer服务的容器。
root@hcss-ecs-f91c:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
866f19377f2d portainer/portainer-ce:2.18.3 "/portainer" 44 hours ago Up 43 hours 8000/tcp, 9443/tcp, 0.0.0.0:9091->9000/tcp, :::9091->9000/tcp portainer
云耀云服务器L实例的Docker应用镜像场景中,从docker hub拉取镜像的速度还是比较快的。当某些镜像拉取过慢时,可尝试配置镜像加速。
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.sjtug.sjtu.edu.cn"]
}
systemctl daemon-reload
systemctl restart docker
从docker hub下载PrestaShop镜像
docker pull mariadb:10.6
docker pull prestashop/prestashop:latest
新建目录/data/prestashop/
mkdir -p /data/prestashop/{data,db} && cd /data/prestashop
新建编辑docker-compose.yaml文件,其中PS_DOMAIN变量的IP地址为服务器的内网IP地址,可通过云耀云服务器L实例的管理页面查询到。
version: "3.9"
services:
db:
image: mariadb:10.6
container_name: prestashop-db
hostname: prestashop-db
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -u root -pprestashop | grep 'mysqld is alive' || exit 1"]
volumes:
- /data/prestashop/db:/var/lib/mysql:rw
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: prestashop
MYSQL_USER: prestashop
MYSQL_PASSWORD: prestashop
MYSQL_DATABASE: prestashop
prestashop:
image: prestashop/prestashop:latest
container_name: prestashop
hostname: prestashop
security_opt:
- no-new-privileges:true
ports:
- 8910:80
volumes:
- /data/prestashop/data:/var/www/html:rw
environment:
DB_SERVER: prestashop-db
DB_NAME: prestashop
DB_USER: prestashopuser
DB_PASSWD: prestashoppass
PS_DOMAIN: 192.168.0.168:8910
depends_on:
- db
links:
- db:prestashop-db
root@hcss-ecs-f91c:/data/prestashop# ls
data db docker-compose.yaml
root@hcss-ecs-f91c:/data/prestashop# docker compose up -d
[+] Running 3/3
✔ Network prestashop_default Created 0.0s
✔ Container prestashop-db Started 0.4s
✔ Container prestashop Started 0.6s
查看容器运行状态,确保容器正常运行。
root@hcss-ecs-f91c:/data/prestashop# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
82a8ee3b23b7 prestashop/prestashop:latest "docker-php-entrypoi…" 2 minutes ago Up 2 minutes 0.0.0.0:8910->80/tcp, :::8910->80/tcp prestashop
b04c3a22c40c mariadb:10.6 "docker-entrypoint.s…" 2 minutes ago Up 2 minutes (healthy) 3306/tcp
在云瑶云服务器L实例的安全组管理页面,在入方向上放行8910端口。
店铺名称:myshop;
主要业务:自定义,这里选择计算机硬件和软件;
是否启动ssl:选择否;
名:san;
姓:zhang;
邮箱地址:[email protected];
店铺密码:自定义。
root@hcss-ecs-f91c:/data/prestashop# docker exec -it prestashop /bin/bash
root@prestashop:/var/www/html# ls
INSTALL.txt admin bin composer.lock docs img install mails pdf templates translations vendor
LICENSES app cache config download index.php js modules phpstan.neon.dist themes upload webservice
Makefile autoload.php classes controllers error500.html init.php localization override src tools var
root@prestashop:/var/www/html# rm -rf install/
root@prestashop:/var/www/html# mv admin/ admin730gc0bh93h9hpfocrm/
访问前台地址:http://xxxx:8910/index.php
将IP改为自己服务器的弹性公网IP地址。