本次部署,基於docker進行,拉取的mcr.microsoft.com/dotnet/core/aspnet:3.1鏡像。 這裡,我沒有使用Dockerfile文件來創建鏡像。 Interop+OpenSsl+SslException: SSL Handshake failed with Open ...
本次部署,基於docker進行,拉取的mcr.microsoft.com/dotnet/core/aspnet:3.1鏡像。 這裡,我沒有使用Dockerfile文件來創建鏡像。
Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL
資料庫連接成功,但是發生錯誤,具體如下圖:
發生這種錯誤,主要是由於,在資料庫登錄驗證階段使用了 SSL,導致身份驗證不通過。允許的 ssl 最低版本和 SQL Server 資料庫版不匹配。在這裡,我採取基於上面拉取的鏡像,啟動容器進入容器內部,修改配置信息,具體代碼如下:
sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf
基於dockerfile的朋友,可以在Dockerfile配置文件中,增加如下代碼,創建容器時來執行一個命令操作。
RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf
我把修改後的容器,從新製作了一個鏡像,暫且命名為aspnetcoressl吧。docker images查看我們剛纔創建的鏡像。
[root@iZm5ec2cjkf2wt7aqpfw72Z ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE aspnetcoressl 3.1 d619e179fc96 2 hours ago 207MB
aspnetcoressl是我們修改過配置文件後創建的鏡像,也就意味著我們可要直接使用該鏡像,來運行容器。
docker run --name tiku.api -v /data:/data -p 80:5000 -d d619e179fc96 dotnet /data/wwwroot/TiKu.Api/TiKu.Api.dll
最後,我把修改過的鏡像,推送到docker.io我個人建的倉庫里,如下圖:
執行下麵代碼,拉取修改後的鏡像(aspnetcore3.1)。
docker pull lichaoqiang/netcore:3.1