ubuntu22安装docker、redis、mysql及部署net6应用

发布时间 2023-05-29 11:21:44作者: zyp_java_net

一、更新系统软件包索引

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服务

<p出现错误提示:2059 -="" authentication="" plugin="" 'caching_sha2_password'="" cannot="" be="" loaded:="" dlopen(..="" frameworks="" caching_sha2_password.so,="" 2):="" image="" not="" found<p="">

 

解决办法:

将 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"]