2023-12-30-aliyun-dev-env

发布时间 2023-12-30 23:26:59作者: chenxinjie

开发的烦恼

依赖很多的中间件,每天的本地开发都要启动很多的中间件服务。不但启动反锁,还严重占用电脑硬件资源。

于是,想起了不久前购买的云服务器。

服务器配置

只是一台配置简陋的云服务器,勉强可以分摊一部分的中间件服务。

阿里云服务器配置

如何快速访问

创建密钥对

通过创建密钥对来实现免密码访问,告别复制粘贴长密码的烦恼。密钥对创建完之后,会自动下载到本地。之后就可以快速进行 ssh 访问。

ssh -i 文件名.pem root@服务器外网IP

Docker 安装

ubuntu 安装 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 中间件服务就能自动启动。

服务器资源占用情况