阿里云开发环境搭建
开发的烦恼
依赖很多的中间件,每天的本地开发都要启动很多的中间件服务。不但启动反锁,还严重占用电脑硬件资源。
于是,想起了不久前购买的云服务器。
服务器配置
只是一台配置简陋的云服务器,勉强可以分摊一部分的中间件服务。
如何快速访问
通过创建密钥对来实现免密码访问,告别复制粘贴长密码的烦恼。密钥对创建完之后,会自动下载到本地。之后就可以快速进行 ssh 访问。
ssh -i 文件名.pem root@服务器外网IP
Docker 安装
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
docker 常用命令
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ecd7e9dc1bc7 hello-world "/hello" 43 seconds ago Exited (0) 42 seconds ago peaceful_lalande
docker rm ecd7e9dc1bc7
ecd7e9dc1bc7
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d2c94e258dcb 8 months ago 13.3kB
docker rmi hello-world:latest
Untagged: hello-world:latest
Untagged: hello-world@sha256:ac69084025c660510933cca701f615283cdbb3aa0963188770b54c31c8962493
Deleted: sha256:d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a
Deleted: sha256:ac28800ec8bb38d5c35b49d45a6ac4777544941199075dff8c4eb63e093aa81e
基础环境1
创建文件 compose1.yml 写入一下编排代码:
version: '2.4'
services:
mysql:
image: mysql:5.7
container_name: mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=#自定义高强度密码#
- TZ=Asia/Shanghai
ports:
- 3306:3306
activemq:
image: webcenter/activemq:latest
container_name: activemq
restart: always
environment:
- ACTIVEMQ_ADMIN_LOGIN=admin
- ACTIVEMQ_ADMIN_PASSWORD=#自定义高强度密码#
ports:
- 8161:8161
- 61616:61616
执行命令:sudo docker compose -f compose1.yml up
基础环境2
创建缓存服务,执行命令:
docker run -p 6379:6379 --restart=always --name redis -d redis --requirepass #自定义高强度密码#
基础环境3(可选)
创建文件 compose2.yml 写入一下编排代码:
version: '2.4'
services:
mysql:
image: mysql:5.7
container_name: mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=#自定义高强度密码#
- MYSQL_DATABASE=nacos_config
- TZ=Asia/Shanghai
ports:
- 3306:3306
nacos:
image: nacos/nacos-server:v2.2.3
container_name: nacos
restart: always
environment:
- MODE=standalone
- PREFER_HOST_MODE=hostname
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=47.100.73.52
- MYSQL_SERVICE_DB_NAME=nacos_config
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=#自定义高强度密码#
- TZ=Asia/Shanghai
- NACOS_AUTH_ENABLE=true
- NACOS_AUTH_IDENTITY_KEY=2222
- NACOS_AUTH_IDENTITY_VALUE=2xxx
- NACOS_AUTH_TOKEN=SecretKey012345678901234567890123456789012345678901234567890123456789
ports:
- 8848:8848
- 9848:9848
执行命令:sudo docker compose -f compose2.yml up
下载指定版本的 nacos 数据表结构,并在数据库中执行 nacos-db.sql:
使用默认密码进行登录 nacos/nacos,并立即修改默认密码:
注意: nacos 对硬件要求比较高,这台蹩脚的 2vC2G 的云服务器,能运行但不能正常使用。
总结
简单的一个服务器记录文章,预计可以节约 2GB 的内存。至少能允许多开一个 Vue 环境吧,希望未来可以多几台蹩脚云服务器。那样的话,可以多节约几个 2GB 的内存。
最后,由于是 --restart=always
的关系。每天上班前只要用手机启动服务器,docker 中间件服务就能自动启动。