一、更新系統(tǒng)軟件包索引
sudo apt update
二、安裝docker
sudo apt install docker.io
三、在docker中安裝Mysql
拉取mysql鏡像
docker pull mysql:latest
查看鏡像
docker pull mysql:latest
運(yùn)行容器
docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-latest mysql
參數(shù)說明:
-
-i
:以交互模式運(yùn)行,通常配合-t
-
-t
:為容器重新分配一個(gè)偽輸入終端,通常配合-i
-
-d
:后臺(tái)運(yùn)行容器 -
-p
:端口映射,格式為主機(jī)端口:容器端口
-
-e
:設(shè)置環(huán)境變量,這里設(shè)置的是root
密碼 -
--name
:設(shè)置容器別名
進(jìn)入容器測(cè)試連接Mysql
docker exec -it mysql-latest /bin/bash
mysql -u root -p 輸入運(yùn)行容器的mysql密碼
?
使用Navicat測(cè)試連接到Mysql服務(wù)
出現(xiàn)錯(cuò)誤提示:2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found
解決辦法:
將 MySQL 8.0 的身份認(rèn)證插件改回為?mysql_native_password
修改 身份認(rèn)證插件為?mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密碼';
刷新權(quán)限
FLUSH PRIVILEGES;
?
四、在docker中安裝redis
拉去redis鏡像
docker pull redis
啟動(dòng)容器
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 你的密碼
參數(shù)說明:
- –restart=always 總是開機(jī)啟動(dòng)
- –log是日志方面的
- -p 6379:6379 將6379端口掛載出去
- –name 給這個(gè)容器取一個(gè)名字
- -v 數(shù)據(jù)卷掛載
- /home/redis/myredis/myredis.conf:/etc/redis/redis.conf 這里是將 liunx 路徑下的myredis.conf 和redis下的redis.conf 掛載在一起。
- /home/redis/myredis/data:/data 這個(gè)同上
- -d redis 表示后臺(tái)啟動(dòng)redis
- redis-server /etc/redis/redis.conf 以配置文件啟動(dòng)redis,加載容器內(nèi)的conf文件,最終找到的是掛載的目錄 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf
- appendonly yes 開啟redis 持久化
- requirepass 密碼 設(shè)置密碼
五、部署net6應(yīng)用
安裝Net6鏡像
docker pull mcr.microsoft.com/dotnet/aspnet:6.0
上傳發(fā)布后的相關(guān)文件
spc 本地打包后的文件位置 root@IP地址:/home
構(gòu)建鏡像
docker build -t 項(xiàng)目名稱例如:fytsoa .
運(yùn)行容器
docker run --name=fytsoa -p 5100:80 -d fytsoa
至此所有運(yùn)行環(huán)境及應(yīng)用安裝、部署完成
下面是安裝成功后所看到的鏡像以及容器
docker images
docker ps
Dockerfile文件內(nèi)容
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS runtime WORKDIR /app COPY . /app ENTRYPOINT ["dotnet", "FytSoa.ApiService.dll"]
? ?分享一個(gè)基于Net6+SCUI開發(fā)的后臺(tái)管理平臺(tái),開原地址
GitHub:https://github.com/feiyit/fytsoa
Gitee:https://gitee.com/feiyit/fytsoa
Net6 Swagger增強(qiáng)UI:https://gitee.com/feiyit/fytapi.mui
?