1、Pycharm建立Docker客戶端
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
2、修改Docker客戶端配置
在pycharm底部點這個打開配置
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
填寫Docker服務端,的IP地址及端口(tcp:// 不能少)
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
上面這個配置完後,下面會出現 connected successfully,說明配置成功。
若是配置失敗,有幾種狀況:
1、 你當前主機環境 沒法 ping 通 Docker所在服務器(雲服務器、防火牆、的端口沒放通)
2、 Docker未作 IP配置
如何配置參考下面連接的解決方案便可配置成功。
https://segmentfault.com/q/1010000020042977
配置完成後,記得重啓 Docker服務
3、Pycharm sftp向Docker所在主機上傳代碼
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
鏈接測試成功後, 不要點OK, 選最上面的 Mappings項,繼續配置
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
上面配置完後,點OK,而後開始上傳
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
4、建立Docker裏的Python解釋器
ctrl+alt+s打開配置, 而後按下圖操做添加解釋器
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
5、給腳本指定解釋器 及 相關配置
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
下面其餘都是默認配好的, 主要配置下面紅框部分的 2 處內容
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
切記: 上面的第一個紅框: Path mappings項 必須配,否則就會出現下圖的錯誤
![clipboard.png clipboard.png](http://static.javashuo.com/static/loading.gif)
這個錯誤,stack, github都沒找到解決辦法。 (明明已是絕對路徑了,仍是讓你提供絕對路徑)
後來無奈之下,隨手把 Path mappings 這項映射配了。 竟然就成功了。。。。。!!
6、最後直接執行本地python文件便可
就是咱們平時在pycharm正常寫代碼的執行操做。。。
總結 + 解惑
總結
- 咱們建立了Docker客戶端,並修改了相關配置
- sftp上傳代碼(咱們映射部分,填的是路徑, 它會自動把該路徑下的文件上傳到雲服務器)
- 建立python解釋器,並作出詳細配置(各類映射)
疑惑解析:
- 爲啥修改代碼保存一次,遠程服務器也會同步自動修改?????????
由於咱們在sftp的時候,mapppings選項中 配置了客戶端和雲服務器的代碼目錄 映射。
而且,咱們在第一次同步代碼的時候勾選了,自動同步選項 (Automatic upload)
-
爲啥能夠操做遠程的Docker裏面的python解釋器??????
首先咱們建立了 docker 的客戶端。並作出了 鏈接遠程服務器的配置。
基於上述條件,咱們在建解釋器時作了以下操做:python
- 選定雲服務器的Docker,
- 選定Docker中的鏡像
- 選定Docker中的鏡像中的python解釋器
- python鏡像是Docker(內部),爲何咱們能夠直接訪問雲服務器(外部)來達到需求 ??????
由於咱們在配置解釋器的時候, 配置了數據卷映射(第 五 章截圖內Docker Container settings項)
固然這屬於Docker數據卷(volume)知識點範疇。
Docker數據卷教程參考連接:https://segmentfault.com/a/11...
END