![](/img/trans.png)
[英]How do I use plt.savefig() within docker container to save to my home directory
[英]How do I run pycharm within my docker container?
Docker-for-mac僅支持在您的OSX主機上偵聽的/var/run/docker.sock套接字上的連接。
如果您嘗試將此添加到pycharm,您將收到以下消息:
“無法連接:java.lang.ExceptionInInitializerError,由以下原因引起:java.lang.IllegalStateException:僅在Linux上受支持”
所以PyCharm 實際上只想通過TCP套接字連接到docker守護進程,並且支持該套接字的推薦TLS保護。 Certificates文件夾默認為默認泊塢機機器的證書文件夾,“default”。
如果在OSX計算機上安裝了socat,則可以通過TCP服務器實現解決方法以公開Docker for Mac。
在我的系統上,我通過自制軟件安裝它:
brew install socat
現在已經安裝了,我可以使用以下參數運行socat:
socat TCP-LISTEN:2376,reuseaddr,fork,bind=127.0.0.1 UNIX-CLIENT:/var/run/docker.sock
警告:這將使整個mac上任何用戶運行的任何進程都可以訪問docker-for-mac。 unix套接字受用戶權限保護,而127.0.0.1則不受保護。
這個socat命令告訴它監聽127.0.0.1:2376並將連接傳遞給/var/run/docker.sock。 reuseaddr和fork選項允許這一個命令為多個連接提供服務,而不僅僅是第一個連接。
我可以通過運行以下命令來測試socat是否正在工作:
docker -H tcp://127.0.0.1:2376 ps
如果你獲得了成功的docker ps
響應,那么你就知道socat進程正在完成它的工作。
現在,在PyCharm窗口中,我可以將相同的tcp://127.0.0.1:2376
放在適當的位置。 我應該收到一條“連接成功”消息:
此解決方法將要求socat命令在您希望使用PyCharm中的docker時運行。
如果你想做同樣的事情,但是使用TLS,你可以設置證書並使它們可用於pycharm和socat,並使用socat的OPENSSL-LISTEN
而不是TCP-LISTEN
功能。 盡管如此,我不會詳細介紹這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.