ubuntu20安裝docker、redis、mysql及部署net6應用

Jason.裕哥發表於2023-05-02

一、更新系統軟體包索引

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

相關文章