一、更新系统软件包索引
sudo apt update
二、安装docker
sudo apt install docker.io
三、在docker中安装Mysql
拉取mysql镜像
docker pull mysql:latest
查看镜像
docker images
运行容器
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
上传发布后的相关文件,根目录要包含Dockerfile文件,内容在文章最底部
scp 本地打包后的文件位置 root@IP地址:/home
构建镜像,在项目根目录,例如:/home/fytsoa
docker build -t 项目名称例如:fytsoa .
运行容器
docker run --name=fytsoa -p 5100:80 -d fytsoa
参数说明:
- –-name=容器名称 总是开机启动
- –-p 常驻内存服务
- –-5100:80 5100对外访问提供的端口号,80容器内运行的dll端口
==========================================================
至此所有运行环境及应用安装、部署完成
下面是安装成功后所看到的镜像以及容器
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