目录
docker环境准备
#安装docker依赖配置docker基础环境并设置开机自启动
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt install docker-ce
sudo systemctl enable docker
sudo systemctl start docker
#配置国内源
mkdir -p /etc/docker && sudo vi /etc/docker/daemon.json
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
sudo systemctl daemon-reload
sudo systemctl start docker
#配置docker命令免sudo 重启服务器生效
sudo groupadd docker
sudo usermod -aG docker $USER
mysql容器跑起来
docker pull mysql:8.0.16
#注意先创建好挂载目录和my.cnf文件,下边会给出基本配置
#docker run -d mysql:latest 以后台的方式运行 mysql 版本的镜像,生成一个容器。
# --name mysql 容器名为 mysql
# -e MYSQL_ROOT_PASSWORD=123456 设置登陆密码为 123456,登陆用户为 root
# -p 3306:3306 将容器内部 3306 端口映射到 主机的 3306 端口,即通过 主机的 3306 可以访问容器的 3306 端口
# -v /usr/mydata/mysql/log:/var/log/mysql 将容器的 日志文件夹 挂载到 主机的相应位置
# -v /usr/mydata/mysql/data:/var/lib/mysql 将容器的 数据文件夹 挂载到 主机的相应位置
# -v /usr/mydata/mysql/conf:/etc/mysql/conf.d 将容器的 自定义配置文件夹 挂载到主机的相应位置
docker run --privileged=true --name mysql8 -p 3306:3306 -v /Users/wenbronk/Containers/Data/mysql/data:/var/lib/mysql -v /Users/wenbronk/Containers/Data/mysql/log:/var/log/mysql -v /Users/wenbronk/Containers/Data/mysql/my.cnf:/etc/mysql/my.cnf:rw -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.16
my.cnf:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
设置mysql权限允许外部访问
mysql -u root -p
use mysql;
grant all privileges on *.* to 'root'@'%';
alter user 'root'@'%' identified with mysql_native_password by '123456';
FLUSH PRIVILEGES;
这里很奇怪,我自己的本地服务器没问题,但是云服务器第一次是ubuntu18.04裸装docker后启动的mysql容器,telnet 127.0.0.1 3306没问题,但是telnet ip 3306 连接不上,后来重装了ubuntu20.04+docker系统后跑mysql容器没问题navcat可以访问了,云服务器客服也没能解答为何如此。
配置nodejs和vue环境
sudo apt-get install nodejs
nodejs -v
sudo apt-get install npm
sudo npm config set registry https://registry.npm.taobao.org
sudo npm install cnpm -g
sudo cnpm install -g vue-cli
vue -V
sudo cnpm install -g koa-generator
找个程序跑起来
随便找了一个:GitHub - zxb1655/xzzblog: node+mysql,vue+elementUI,uniapp小猪猪全套完整博客系统,全栈前后端分离,移动端小程序H5
他这里是四个单独的服务:
先跑第一个vue前端项目
这个目录结构是 vue init 出来的,需要先下载依赖包再跑,先切换到这个前端项目根目录:
cnpm install
npm run dev
跑起来koa这个server服务
先切换到koa server目录下:
这里用到了ali-oss ,需要登录阿里云账号后,查看:https://ak-console.aliyun.com/#/accesskey 即可拿到accessKeySecret 和 accessKeyId
npm install
node myblog.js