Identity Server 4 從入門到落地(十一)—— Docker部署
- 2021 年 12 月 13 日
- 筆記
- docker, Dot Net, Identity Server, Identity Server 4
前面的部分:
Identity Server 4 從入門到落地(一)—— 從IdentityServer4.Admin開始
Identity Server 4 從入門到落地(二)—— 理解授權碼模式
Identity Server 4 從入門到落地(三)—— 創建Web客戶端
Identity Server 4 從入門到落地(四)—— 創建Web Api
Identity Server 4 從入門到落地(五)—— 使用Ajax 訪問 Web Api
Identity Server 4 從入門到落地(六)—— 簡單的單頁面客戶端
Identity Server 4 從入門到落地(七)—— 控制台客戶端
Identity Server 4 從入門到落地(八)—— .Net Framework 客戶端
Identity Server 4 從入門到落地(九)—— 客戶端User和Role的解析
Identity Server 4 從入門到落地(十)—— 編寫可配置的客戶端和Web Api
認證服務和管理的github地址: //github.com/zhenl/IDS4Admin
客戶端及web api示例程式碼的github地址://github.com/zhenl/IDS4ClientDemo
第一部分開始使用的認證服務和管理應用都是在本地運行,本文介紹將這兩部分作為Docker容器部署。這兩部分的鏡像已經上傳到docker hub,可以使用下面的命令下載。
認證服務鏡像:
docker pull zhenlei1970/ids4adminstsidentity
管理應用鏡像
docker pull zhenlei1970/ids4adminadmin
這裡記錄一下我在阿里雲ubuntu伺服器上的部署過程,供大家參考。
首先是準備環境,安裝MS SqlServer的docker容器。先下載sql server鏡像:
docker pull mcr.microsoft.com/mssql/server:2019-latest
下載完成後,可以使用docker images查看是否下載完成。然後啟動容器:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=123456" -u 0:0 -p 1433:1433 --name mssql -v /data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
使用docker ps -a 查看,發現異常退出了,容器沒有正常運行。使用docker logs mssql查看,發現是初始密碼設置錯誤:初始密碼必須包含大寫、小寫、數字和特殊字元,並且至少8位。將這個容器刪除,使用新的密碼再次創建新的容器,這次可以了。
如果需要從外部訪問sql server,需要設置防火牆,將1433埠打開。這樣可以從遠程使用sql server management進行管理了。
資料庫安裝完成之後,可以準備部署認證服務和管理應用了。仍然需要先運行輔助工具,生成這兩部分的配置文件,然後在伺服器創建兩個目錄admin和sts,將生成的配置文件拷貝到相關目錄中:
現在可以創建容器了,管理應用容器,創建時注意,映射的埠應該與生成的配置文件中的埠一致,在本例中,管理應用運行在7003埠,認證服務運行在7010埠:
docker create --name ids4admin -v /mydata/ids4/admin/log:/app/Log \
-v /mydata/ids4/admin/appsettings.production.json:/app/appsettings.json \
-v /mydata/ids4/admin/identitydata.json:/app/identitydata.json \
-v /mydata/ids4/admin/identityserverdata.json:/app/identityserverdata.json -p 7003:80 zhenlei1970/ids4adminadmin
認證服務容器:
docker create --name ids4sts -v /mydata/ids4/sts/log:/app/Log -v /mydata/ids4/sts/appsettings.production.json:/app/appsettings.json \
-p 7010:80 zhenlei1970/ids4adminstsidentity
創建完成後,使用docker start ids4admin 和docker start ids4sts啟動容器。容器啟動後,可以使用docker ps查看容器的運行狀況。
如果出現問題,可以使用docker logs ids4admin 和docker logs ids4sts 查看日誌。現在使用瀏覽器訪問認證服務和管理應用了。