这次双十一, 牛客网联合华为云搞活动, 惊爆价, 学生机一年只要9块钱, 9块钱, "老夫"激动得无以言表, 简直太棒了!
活动一开始, 我就立马下单购买了, 要做第一个吃螃蟹的人. 买了, 也不能闲置吃灰, 我得把华为云服务器用起来, 顺便写篇文章记录下.
首先, 我要用华为云服务器搭建一个个人博客. 个人考察了常见的博客系统, WordPress、Typo、Zblog、Ghost、Solo、Hexo、Hugo, 前面5个是带后台的动态博客, 其中WordPress、Typo、Zblog是基于PHP的, Ghost是基于Nodejs的, Solo是基于Java的, Hexo、Hugo是静态博客生成器, 最后我选择了Solo, 虽然它是Java写的, 但是很省内存, 运行时只占用100多MB的内存. 而且Solo比较符合我的个人需求, 功能不多不少, 有很多定制的皮肤.
下面使用docker在华为云上搭建Solo博客, 跟着一步步做就差不多了, 注意可能要修改一些参数. 我选择的操作系统是Ubuntu 18.04 server 64bit, 其他Linux系统也是大同小异的, 没多大区别. 首先得根据Docker的官方文档安装docker, Ubuntu参考https://docs.docker.com/install/linux/docker-ce/ubuntu/, 这里不再累述.
创建自定义网络给容器固定ip
docker network create --opt com.docker.network.bridge.name=mynetwork --subnet=172.28.0.0/16 mynetwork # 默认情况下, 重启Docker服务进程, 会导致docker容器的ip变化, 所以要把容器ip固定下来.
创建nginx-proxy和letsencrypt-nginx-proxy-companion容器(开启https)
docker run -d -p 80:80 -p 443:443 \ --name nginx-proxy \ --network mynetwork --ip 172.28.0.2 --dns 114.114.114.114 \ -e TZ=Asia/Shanghai \ -v /etc/nginx/certs \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ --restart=always \ jwilder/nginx-proxy docker run -d \ --name nginx-proxy-letsencrypt \ -e "DEFAULT_EMAIL=你的邮箱地址" \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --volumes-from nginx-proxy \ --restart=always \ jrcs/letsencrypt-nginx-proxy-companion
创建mysql容器并减少mysql内存占用
docker run -d \ --name mysql \ --network mynetwork --ip 172.28.0.3 --dns 114.114.114.114 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=你的数据库密码 \ -e MYSQL_ROOT_HOST=172.28.0.% \ -v /home/ubuntu/mysql57:/var/lib/mysql \ --restart=always \ mysql/mysql-server:5.7.27 # 删除容器数据不会丢, 数据保存在/home/ubuntu/mysql57, 可以自己改成其他路径. docker exec -it mysql bash -c "cat >> /etc/my.cnf << 'EOF' # Reducing MySQL memory usage performance_schema_max_table_instances=400 table_definition_cache=400 table_open_cache=256 EOF" docker restart mysql
创建solo容器
docker run -d \ --name solo \ --network mynetwork --ip 172.28.0.4 --dns 114.114.114.114 \ -e "VIRTUAL_HOST=www.example.com,example.com" \ -e "LETSENCRYPT_HOST=www.example.com,example.com" \ -e solo_server_host="example.com" \ -e RUNTIME_DB="MYSQL" \ -e JDBC_USERNAME="root" \ -e JDBC_PASSWORD="你的数据库密码" \ -e JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ -e JDBC_URL="jdbc:mysql://172.28.0.3:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \ --restart=always \ registry.cn-shenzhen.aliyuncs.com/jin7/solo # 注意把www.example.com和example.com改成你自己的域名. # 这个Solo镜像是我自己定制的, 把lute-http(更高效的markdown渲染引擎)和solo整合在一起了. 该镜像每日自动构建, 保持Solo是最新的版本.
至此Solo博客就搭建好了, 访问你的域名, 尽情享用吧.
除了搭建博客, 我们再来玩玩VSCode远程开发. VSCode远程开发可以让我们利用华为云服务器做开发, 具体有两种开发方式, 直接在华为云服务器上做开发, 或者在华为云服务器上的Docker容器中做开发. 如图所示SSH TARGETS(直接在服务器上开发)和CONTAINERS(在容器中开发).
SSH TARGETS具体的配置方法很简单,
在$home/.ssh/config中添加:
Host huaweicloud User 用户名 HostName 华为云服务器IP地址 Port 22 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa # 记得把本地电脑上的公钥 ~/.ssh/id_rsa.pub内容粘贴到华为云服务器上的~/.ssh/authorized_keys中.
CONTAINERS的配置方法也不复杂,
在vscode添加设置:
"docker.host":"tcp://localhost:23750",
开启本地端口转发(本地端口-->远程端口)
ssh -NL localhost:23750:/var/run/docker.sock 用户名@华为云服务器IP地址 -f # Windows10自带了ssh, Win7如果没有ssh, 安装git就有, 指明一下详细路径.
在华为云上创建一个python容器用于远程开发
docker run -t -d \ --name python \ -e TZ=Asia/Shanghai \ -v /home/ubuntu/development/python_root:/root \ --restart=always \ python:3.7.5
vscode remote安装扩展
ms-python.python formulahendry.code-runner visualstudioexptteam.vscodeintellicode
至此VSCode远程开发配置完毕, 尽情享用吧. 具体的官方文档参考https://code.visualstudio.com/docs/remote/remote-overview.
华为云服务器可玩性很高, 可以做很多事情, 我这里就介绍了两个, 还有很多可挖掘的空间, 可以尽情地去探索、去发现!
感谢牛客网+华为云, 9块钱上云!