记录Docker部署Vue+NetCore+MsSql+Redis
Vultr上的主机经常忘了续租,导致账号被禁用,主机被删掉
每次重新部署都忘了之前怎么弄的,要重新查好多资料,特记录下这次部署的过程
Vultr我都是选最便宜的主机,每个月6美金的主机
用XShell连接Vultr主机IP
安装docker
yum install docker #这里有坑后面才发现,docker是旧版,得用docker-ce
systemctl enable docker #将docker设置了开机启动
systemctl start docker #启动docker服务
systemctl status docker #查看docker服务状态
部署 mysql
docker pull mysql:5.7.26 #拉取mysql镜像 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=admincai -d mysql:5.7.26 #运行容器
部署redis
docker pull redis #拉取redis镜像
这里拉取redis镜像时报了错误 missing signature key
在网上查了后,说docker问题,得安装docker-ce
先安装个yum源地址,不然装不了docker-ce
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #配置包源地址 yum install docker-ce -y #安装docker-ce
先创建redis配置文件跟数据目录
mkdir /home/redis
mkdir /home/redis/data
把redis.conf配置文件上传到主机上
运行redis容器
docker run -p 6379:6379 --name redis -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data -d redis redis-server /etc/redis/redis.conf
部署后端程序
部署前得把配置文件里连接mysql、redis的IP地址改掉,不能用127.0.0.1,应该每个窗口都是隔开的,
可以改成宿主机的内部IP,一般是172.17.0.1,如果不是可以在宿主主机上查看
ip a
看到docker0的IP地址
容器互访也可以用bridge网络
那运行mysql可以这样docker network create testnet docker run --name <容器名> ---network <bridge> --network-alias <网络别名> <镜像名>
docker run -p 3306:3306 --name mysql --network testnet --network-alias test-1 -e MYSQL_ROOT_PASSWORD=admincai -d mysql:5.7.26 docker run --name cai-admin-back -d -p 5000:80 --network testnet --network-alias test-2 cai-admin-back
然后后端配置文件连接mysql的Ip地址就直接改成test-1
将后端项目发布后的publish目录上传到主机/root
cd /root/publish docker build -t cai-admin-back . #构建后端镜像 docker run --name cai-admin-back -d -p 5000:80 cai-admin-back #宿主5000映射到容器80端口
部署前端
每次安装前端项目的包依赖都会各种问题,特别是这个node-sass,一直装不成功
特别记录一下
node node-sass sass-loader 三个的版本得,任一库的版本不对,都会出现莫名奇妙的问题
这个node-sass要安装成功,就得搭配上对应版本的nodejs,每个版本对应的都不一样
我机子的node是18版本,我就把前端项目的node-sass版本升到了8,然后就运行时就报错了,报了找不到color-name库,
我把sass-loader库升级到14后,又报错了,this.getOptions is not a function
哎,最后我还是前端项目的版本还原了,我把电脑上的Node降到15.14.0,最后还是报找不到color-name,好吧,把color-name装上,终于成功了
把前端构建后的文件上传到主机上/root/front
cd /root/front docker build -t cai-admin-front . docker run --name cai-admin-front -d -p 80:80 cai-admin-front
其它相关命令
查看日志 查看最近100条日志 docker logs -t -n100 mssql -n,-tail 100 查看最近100条 -f,--follow 实时跟踪 -t,-timestamps 显示时间戳 --details --since --until docker logs --since 30m mssql 查看最近30分钟内的日志 docker logs --until 30m mssql 查看30分钟前的日志 docker logs --since="2022-11-22T13:00:00" --until="2022-11-22T14:15:00" cms |grep -30 '关键字' https://blog.csdn.net/xrq1995/article/details/127981800 docker search mssql docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "旧密码" -Q 'ALTER LOGIN SA WITH PASSWORD="新密码"'