这里写自定义目录标题
项目部署参照
01 Windows本地安装docker
按照官网的执行就好了
02 Mysql安装与配置
2.1 第一步,命令行拉取mysql镜像
docker pull mysql:8.0 # 拉取 mysql 8.0
docker images # 检查是否拉取成功
2.2 第二步,运行mysql镜像,启动mysql实例
docker run -itd --name mysql8.0 --restart=always -p 3307:3306 -e MYSQL_ROOT_PASSWORD="123456" -d mysql:8.0
# 因为在这之前我在本地安装过mysql,并占用了3306端口,所以这里更改了端口映射
# 3307是宿主机的端口,3306是容器的端口
第一次运行的命令是3306:3306,结果显示端口被占用,但奇怪的是该容器实例已被创建,并且名字为mysql8.0,后面再运行这行命令会出错,显示/mysql8.0名字已被占用。
解决方法是删除这个容器实例即可。
2.3 第三步,查看mysql是否启动
docker ps
2.4 进入容器实例,登录mysql
docker exec -it mysql8.0 mysql -uroot -p123456
这里一开始运行的时候显示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
,接着我又运行了以下命令
docker exec -it mysql8.0 mysql /bin/bash
显示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
然后我又运行了第一行命令,结果就连进去了。。。很迷
总之最后显示
2.5 使用Navicat进行连接测试
host: localhost
port: 3307
连接之后会出现下图
解决方法:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
// 刷新权限
FLUSH PRIVILEGES;
然后就能连好啦
03 Redis安装与配置
与mysql安装类似
docker pull redis # 拉取redis镜像
docker images # 检查是否拉取成功
docker run --name redis_latest -p 6380:6379 -d redis # 启动redis容器
# --name xxx 表示给该容器取一个名字xxx
# -p 6380:6379 宿主机端口6380映射到容器端口6379,因为之前本地安装过redis,占用了6379端口,所以这里改为6380
# -d image_name 表示后台启动一个容器,并在容器里运行该镜像
如果想停止容器,命令为
docker stop container_name
停止容器后又想启动该容器,命令为
docker start container_name
启动时会将第一次创建容器的参数都传进来,比如创建时绑定的端口又会加载下来,这样就不用再写端口绑定参数了
注意,创建容器后想启动该容器,不要执行docker run
,否则又会创建一个新的容器
进入redis客户端
docker exec -it redis_latest redis-cli # 表示要在容器redis_latest里执行redis-cli命令
04 Nginx安装与配置
05 TODO
- novel.conf文件
- redis挂载配置