插件Docker
在設置-Plugins-BROWSE REPOSITORIES… 中搜索“Docker”
安裝即可,重啓使用
當然本地必須先安裝Docker,並且打開Docker,而且需要加入用戶組
$ sudo groupadd docker && sudo usermod -aG docker $USER
之後就可以不加sudo
運行Docker命令了
$ docker run hello-world
打開之後就是這樣的
分別就是容器和鏡像,下面舉一個簡單的栗子,先去拉python的鏡像,然後運行helloworld.py
文件
FROM python COPY helloworld.py /app/helloworld.py WORKDIR /app
在Dockerfile左邊有一個綠色按鈕,Run Dockerfile
helloworld.py
print 'hello world'
這裏會直接報錯,因爲python3嘛,然後我們現在需要修復,可以先修改python文件,再重新build,這裏介紹一種更簡單的方法。
右鍵點擊構建好的容器,點擊“Exec”,輸入/bin/bash
進入shell
root@a8b31f52a720:/app# ls helloworld.py root@a8b31f52a720:/app# python helloworld.py File "helloworld.py", line 1 print 'hello world' ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print('hello world')? root@a8b31f52a720:/app# python --version Python 3.7.1 root@a8b31f52a720:/app#
我們拉取的鏡像是Python3.7版本的,我想要直接在Pycharm中編輯PY文件,並讓Docker直接同步文件變化,可以使用下面這個功能:Volume Bindings
分別填上Docker中的目錄與本地所在目錄,一定要點擊右下角的SAVE,稍等片刻,點擊Volume Bindings 就可以看到關聯了。
其實這個功能就是Docker中的Volume,Docker 中可以通過 Volume 實現持久化存儲和數據共享。只不過這裏通過可視化非常方便調試。
還有其他功能,像設置環境變量、端口暴露等等,使用這個插件就會比較容易處理。
其實我用的比較多的情況是爬蟲本地和線上有差距時就會來測試,有時候是發現某個依賴沒有裝,有時候則是網絡問題。
Docker測試可以保證的一點是環境完全一致。