阿里云服务器部署wp-部署容器

前言
说到云服务器,本人购买过国内的阿里云与美国cloudcone,其实各有特点,我这一台国外的服务器高峰期时很慢很卡,在使用ssh终端的时候能卡一两秒,用着超级难受,但是好在不用实名制不用备案网络无墙。但是这一次我们以阿里云服务器为例,搭建wordpress博客服务。接下来有很多坑要踩,特别是国内服务器有很多避坑要点。
系统环境与容器部署
这一次我们选择Ubuntu22.04,其实Debian也可以,本人喜欢这两个系统,其实是用习惯它们的包管理工具啦,软件源镜像在国内做的比较好。
先安装 docker + docker-compose
apt updata #检查更新
apt upgrade #执行更新
apt install docker.io #安装社区版
apt install docker-compose #安装compose

接下来我们安装运维面板,选择1panel(我喜欢这个胜过宝塔bt,宝塔很多广告),运维面板可以在我们忘记管理员密码或者ssh终端连接被防火墙墙的时候,一种补救措施,它可以进入网页终端可以修改用户与密码,反正很好用,装就行。
bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

我们把云服务器的防火墙端口打开,当我们完成反代就可以关闭取消这个端口了。

安装好后:我们可以通过iip+端口进入,脚本已经运行ufw把已经把该端口放行了。


我们尝试运行一个compose时候,发现docker源出现了问题,意思是运行 docker pull hello-world 失败了。由于国内的网络原因,与境外的源服务器不能通讯,那么我们使用国内的源。
本人尝试过使用1ms的源,但是要注册,注册之后还是不行。
docker pull docker.1ms.run/nginx:latest #手动拉取到本地,compose部署时候自动使用本地的镜像
最后不得不使用阿里云的源:

配置docker daemon(英文是恶魔,其实是服务的意思),创建docker源配置文件,重启生效:


systemctl daemon-reload
systemctl restart docker
docker pull hello-world #测试拉取
Compose安装容器编排
npm是nginx的管理面板,是反代的好用工具,一键申请免费证书。

npm部署运行:

wordpress三件套(我喜欢把mysql数据库与phpmyadmin数据库可视化工具,打包在一起,好移植备份迁移,所以叫三件套):


wordpress三件套的配置文件,我们把conf.d目录映射到配置目录,或者目录里面指定配置文件映射到配置文件:


wordpress三件套部署运行:

1panel查看容器情况:

可选-补充(手动导入容器镜像包)

在我们使用阿里云的镜像源进行拉取的时候,发现我们注明容器版本为latest标签时候,仍然拉取不到最新的版本,这个与阿里云镜像服务器同步不及时有关系。那么在这一种这情况我使用portainer(容器管理面板)进行手动导入镜像包(删除原来下载的包导入新包),可以使用魔法到境外网站下载,不过我有一台服务器是在美国的,也安装了portainer,那我我就可以获取最新的容器包。在我们需要重新部署编排的时候,执行docker-compose down 卸载掉编排,docker-compose up -d 重新部署。
PS:docker镜像源有问题,其实是可以更换为其他源的,但是必须选择不需要登录且不限定服务器的源才行,这个我测试过但是找不到一个能用的源
portainer界面:

我们使用docker命令进行导出容器包:
#docker-compose build #构建镜像(一般不需要,除非自己定义dockerfile,yml有build字段,在compose所在目录,构建生成本地镜像)
docker images #列出镜像表
docker save -o all-img.tar wordpress:latest example:8.0 #可以打包一个或者多个
gzip -c all-img.tar > all-img.tar.gz #使用gzip命令压缩(一般我们常用tar命令,tar命令可以调用gzip)
使用docker命令移除容器包:
docker rmi wordpress:latest #镜像名:标签
#docker rmi 1234 #镜像ID(便捷,可只输入前3-4位唯一ID)
使用docker命令导入容器包:
gzip -d all-img.tar.gz #解压,得到.tar后缀文件
docker load -i all-img.tar #导入容器包要求tar格式,无压缩
docker images #应看到镜像列表,说明导入成功
portainer安装(下载容器包,docker命令导入,docker命令运行编排):



使用portainer面板(图形化导入导出):


查看导入的容器:

重新部署wordpress编排(先卸载掉),部署成功,不需要拉取了:

进入wordpress后台,查看版本是否最新的6.9版本,发现成功了(显示是6.9而不是5.8版本):

说明一下:这一种情况拉取容器不是最新的额版本,只能是镜像源的问题。
防火墙配置
配置防火墙,1panel 后台终端配置防火墙:
ufw enable
ufw allow 22/tcp #ssh端口放行
ufw reload
云服务器端的防火墙配置(阿里云安全组配置,放行端口):
- npm外部端口(测试,日后关闭)8181
- wordpress 外部端口(测试,日后关闭)8081
- phpMyAdmin 外部端口(测试,日后关闭)8082
登录web后台
在云服务器端放行端口后,我们可以通过IP+端口进行访问:



wordpress后台

目前我们wordpress已经安装成功了,但是国内网络环境是访问不到主题库与插件库的下载服务的,但是我们可以手动下载再导入安装,完全不用担心。
最后一步(反代)
目前我们一个可以通过ip进行访问wordpress了,但是得使用域名才显得高级,要完成这个还有很多东西要配置,我们在下一篇展开声明。
文章评论