一、更新系統軟體包索引
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