一、更新系统软件包索引
sudo apt update
二、安装docker
sudo apt install docker.io
三、在docker中安装Mysql
拉取mysql镜像
docker pull mysql:latest
查看镜像
docker pull mysql:latest
运行容器
docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-latest mysql
参数说明:
-
-i
:以交互模式运行,通常配合-t
-
-t
:为容器重新分配一个伪输入终端,通常配合-i
-
-d
:后台运行容器 -
-p
:端口映射,格式为主机端口:容器端口
-
-e
:设置环境变量,这里设置的是root
密码 -
--name
:设置容器别名
进入容器测试连接Mysql
docker exec -it mysql-latest /bin/bash
mysql -u root -p 输入运行容器的mysql密码
使用Navicat测试连接到Mysql服务
出现错误提示:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
解决办法:
将 MySQL 8.0 的身份认证插件改回为 mysql_native_password
修改 身份认证插件为 mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
刷新权限
FLUSH PRIVILEGES;
四、在docker中安装redis
拉去redis镜像
docker pull redis
启动容器
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 你的密码
参数说明:
- –restart=always 总是开机启动
- –log是日志方面的
- -p 6379:6379 将6379端口挂载出去
- –name 给这个容器取一个名字
- -v 数据卷挂载
- /home/redis/myredis/myredis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的myredis.conf 和redis下的redis.conf 挂载在一起。
- /home/redis/myredis/data:/data 这个同上
- -d redis 表示后台启动redis
- redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf
- appendonly yes 开启redis 持久化
- requirepass 密码 设置密码
五、部署net6应用
安装Net6镜像
docker pull mcr.microsoft.com/dotnet/aspnet:6.0
上传发布后的相关文件
spc 本地打包后的文件位置 root@IP地址:/home
构建镜像
docker build -t 项目名称例如:fytsoa .
运行容器
docker run --name=fytsoa -p 5100:80 -d fytsoa
至此所有运行环境及应用安装、部署完成
下面是安装成功后所看到的镜像以及容器
docker images
docker ps
Dockerfile文件内容
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime WORKDIR /app COPY . /app ENTRYPOINT ["dotnet", "FytSoa.ApiService.dll"]
分享一个基于Net6+SCUI开发的后台管理平台,开原地址
GitHub:https://github.com/feiyit/fytsoa
Gitee:https://gitee.com/feiyit/fytsoa
Net6 Swagger增强UI:https://gitee.com/feiyit/fytapi.mui