Identity Server 4 從入門到落地(十一)—— Docker部署

尋找無名的特質發表於2021-12-13

前面的部分:
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地址: https://github.com/zhenl/IDS4Admin
客戶端及web api示例程式碼的github地址:https://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 檢視日誌。現在使用瀏覽器訪問認證服務和管理應用了。

相關文章