theme: juejin
记一次中道崩殂的个人博客搭建(windows server )(wordpress docker)
一.环境配置
1.服务器购买和域名备案(某里云打钱啊!!!)
先上效果图:服务器效果展示(图形化界面非常符合人性😀),甚至可以装安全卫士,(^_^)
某里云购买99元一年带可选域名的服务器,链接https://www.aliyun.com/benefit
选这个亲测非常实惠,99元一年的服务器还要什么自行车。(某里云官方,打钱啊!!!)
选好后登录并进入实例控制台
域名备案在这里👇
接着一步步跟着做就好,身份证拍照,人脸识别什么的。然后就是等,大概等20天左右就能拿到备案号。
二.更换操作系统
到售后服务,直接说换系统,一步步跟着弹出来的教程就OK
然后一步步无脑跟着做,就完成啦!!!
回到实例控制台,我们来下载阿里云远程连接客户端
点开ECS(有可能会被挡住,被挡住了要拉开哦(^_^))
远程连接可选择分别率,建议和电脑分辨率一致(默认已经开启粘贴板复制)
二.服务器上部署wordpress
docker可以理解为超级轻量虚拟机。
把运行docker容器比作吃蛋糕,那么docker容器就是蛋糕,docker镜像就是工厂产的半成品蛋糕,dockerfile就是工厂制作半成品蛋糕的配方。
当然我们也可以自己编写“配方”制作半成品蛋糕,存放到仓库(dockerHub),大伙来仓库取半成品,来做成品蛋糕(docker pull 拉取仓库镜像)……
windows版下载链接https://www.docker.com/get-started/
一路无脑下一步,即可安装成功(^_^)
打开CMD输入docker -v验证docker安装成功
开启Hyper-V和Containers Windows 功能。打开“服务器管理器”,选择“管理” -> “添加角色和功能”,勾选“Hyper-V”和“容器”
困境
人麻了,服务器不支持Hyper-v,可是距离柳暗花明就差一步啦!!明知山有虎,偏向虎山行,大活人还能被尿憋死不成!?
曙光
翻各种资料发现,可以使用cmd脚本来开启Hyper-v从而使用docker的
新建文本文件,输入一下代码,保存为.cmd后缀名的文件,右键以管理员身份运行,柳暗花明又一村!
StartHyper-v.cmd中的内容为👇(运行后大概要等二十分钟,耐心等待)
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages*Hyper-V*.mum >hyper-v.txt
for /f %%i in (‘findstr /i . hyper-v.txt 2^>nul’) do dism /online /norestart /add-package:“%SystemRoot%\servicing\Packages%%i”
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
重启电脑
又一次困境
还是不行,
是不是要决定改变策略?不使用docker了,直接使用IIS服务器部署呢?可是这不就违背了学习的初衷嘛
于是跑去找某里云服务器售后
把在服务器装好的工具安装包都上传到gitee,到时候换完镜像,方便立即安装,不用东找西找,链接在此👇:
https://gitee.com/geekea66_admin/sersoft
但又发现自己的操作系统已经是with container版本的了
尝试输入命令,安装Hyper-v
Install-WindowsFeature -Name Hyper-V
售后客服回话了:
您好,您按照微软提供的方案在powershell中执行这两条命令安装试下 Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1 .\install-docker-ce.ps1 详细说明可参考:https://learn.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=dockerce
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1 .\install-docker-ce.ps1
看售后给的Microsoft官方文档
最终决定重新初始化云盘,因为根据官方文档并没有任何步骤错误
发现阿里云有各种镜像,甚至有一键部署的wordpress镜像,直接使用就行了,连wordpress都不用装
本着学习的目的,换回来原来的windows server2022 with container版本
重装系统后,powershell运行下面的命令(下面.\install-docker-ce.ps1单独另作一行)
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
.\install-docker-ce.ps1
可见docker安装成功(之前的Hyper-v的cmd脚本把系统搞乱了,应该是)
太开心啦!!!😀
接下来开始安装wordpress的docker镜像
又又又报错了(我其实挺想问一下的,既然docker是为了简化部署的,可是部署docker比部署原生还费劲,那docker有什么价值呢?)
docker pull wordpress:latest latest: Pulling from library/wordpress no matching manifest for windows/amd64 10.0.20348 in the manifest list entries
换个思路,在本机处理好wordpress和mysql容器后,再一并上传到服务器中
以下是在本机操作
拉取mysql镜像
docker pull mysql:5.7
启动容器,设置容器名为mysql5.7并把3306端口映射到宿主机的3305端口上,同时设置root初始化密码为root
docker run -it --name=mysql5.7 -p 3305:3306 -e MYSQL_ROOT_PASSWORD=root -e TZ=Asia/Shanghai -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --lower_case_table_names=1
停止正在运行的容器,等会要配置挂载卷
docker ps
docker stop b3a50c2add19
挂载卷:
docker run -it --name=mysqguazhai5.7 -p 3305:3306 -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -e MYSQL_INITDB_ARGS="--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --lower_case_table_names=1" -v D:\mysqlbak:/var/lib/mysql -d mysql:5.7
配置mysql容器 此时的mysql已经运行起来了,但是需要配置允许外部访问才可使用
#进入容器
docker exec -it mysql5.7 /bin/bash
#进入mysql数据库--123456
mysql -u root -p
#设置mysql允许访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
用navicat或任何SQL工具连接
周末结束,只得乖乖暂停。
总结:
一定要做好时间规划,否则就是延期,延期,延期。
能不用docker,就不用docker,除非遇到系统环境大幅度改变,或需要大量进行部署。
要是项目开发,这绝对被产品经理屌,因此技术选型也非常终于,使用什么技术栈,用什么方法来实现,能在很大程度上决定一次开发是否会延期。
这是一个从 https://juejin.cn/post/7368505674223566863 下的原始话题分离的讨论话题