python學(xué)習(xí)筆記--開發(fā)與調(diào)試環(huán)境(1)pycharm遠(yuǎn)程調(diào)試docker容器內(nèi)部程序

https://blog.csdn.net/Wendy019900107/article/details/81985837

1. 個(gè)人開發(fā)環(huán)境如下:

(1)pycharm專業(yè)版(2018.1.2)位于windows10上

(2)docker-daemon(1.13.1)位于centos7上,centos7地址為10.74.53.141

2. 遠(yuǎn)程調(diào)試原理:

? ? 在win10上安裝pycharm,在linux上安裝docker engine作為docker-host,在docker-container里面安裝python解釋器;

??? pycharm通過tcp/2375端口與docker-host通信,可以直接發(fā)送docker指令,然后讓linux執(zhí)行,

? ? 通過docker指令,可以創(chuàng)建image,運(yùn)行container,實(shí)現(xiàn)host與container之間目錄掛載,端口映射等操作;

? ? 至于代碼的上傳,不同的docker部署方式不一樣,詳細(xì)信息,看下文。

3. 開啟dacker-daemon遠(yuǎn)程接入特性,允許pycharm連接

(1)編輯docker服務(wù)配置文件,保存修改【vim /lib/systemd/system/docker.service】

(2)重載配置,并重啟服務(wù)

? ? ? ? $ systemctl daemon-reload

? ? ? ? $ sudo service docker restart

(3)測(cè)試

? ? ? ? 在另一臺(tái)主機(jī)上,比如windows10上,telnet 10.74.53.141 2475,可以成功訪問docker-daemon

4.? pycharm:作為客戶端連接docker-host

? ? (1)新建一個(gè)純python工程,暫時(shí)python解釋器可忽略

? ? (2)連接docker-host:

? ? ? ? 導(dǎo)航欄依次點(diǎn)擊 File?---> Settings,彈窗 Settings對(duì)話框,繼續(xù)點(diǎn)擊 Build, Execution, Deployment ---> Docker?

5.?pycharm:配置docker-container(程序的運(yùn)行環(huán)境),并開始調(diào)試

? ? ? ? ?依次點(diǎn)擊【工具欄下方標(biāo)題欄右邊的下拉箭頭】---> Edit Configurations... --->? 彈出【Run/Debug Configurations】對(duì)話框 --->?? 依次點(diǎn)擊【+】---> Docker ---> 彈出下拉列表,有三個(gè)選項(xiàng):Docker Image,Docker-compose,Dockerfile。區(qū)別如下表:

? docker image dockerfile docker-compose

適用場(chǎng)景 適用于docker-host上有程序運(yùn)行所需的image 適用于docker-host上沒有有程序運(yùn)行所需的image 適用于docker-host上沒有有程序運(yùn)行所需的image

鏡像創(chuàng)建 doker-host上已經(jīng)存在 dockerfile.ini dockerfile.ini

端口映射 pycharm配置 pycharm配置 docker-compose.yml

目錄掛載 pycharm配置 pycharm配置 docker-compose.yml

容器啟動(dòng)時(shí)執(zhí)行的命令 pycharm配置 dockerfile.ini dockerfile.ini

代碼上傳 pycharm通過sftp上傳到docker-host,docker-host通過目錄掛載同步給docker-container dockerfile.ini dockerfile.ini

針對(duì)代碼的改變 無須任何變動(dòng) 需要增加dockefile.ini文件 需要增加dockerfile.ini、docker-compose.yml文件

? 6.1 采用docker image方式

? ? ? ? (1)確認(rèn)docker-host上image已經(jīng)存在

? ? ? ? (2)配置docker-host和pychram目錄映射,上傳pycharm源碼到docker-host

? ? ? ? ? ? ? 導(dǎo)航欄依次點(diǎn)擊 Tools ---> Deployment ---> Confiuration ,彈窗 Deployment對(duì)話框

? ? ? ? ? ? ? ?配置賬號(hào)和密碼,測(cè)試連接是否成功

? ? ? ? ? ? ? 配置pycharm和docker-host上的目錄映射

? ? ? ? ? ? ? 上傳pycharm工程下的代碼到docker-host上

? ? 右擊工程目錄下需要上傳到docker-host上的文件或者文件夾,依次選擇:Deployment ---> Upload to root@10.74.52.141,即可。

? ? ? ? (3)配置docker環(huán)境,并運(yùn)行程序

? ? 6.2 采用dockerfile方式

? ? ? ? (1)編寫dockerfile.ini文件

FROM caowencomeon/uwsgi:1.0

COPY src? ? ? ? /testbed/src

COPY uwsgi.ini? /testbed/uwsgi.ini

VOLUME /var/log

VOLUME /data

EXPOSE 5000

CMD ["uwsgi", "/testbed/uwsgi.ini"]

? ? ? ? (2)配置docker環(huán)境,并運(yùn)行程序

? ? 6.3 采用docker-compose方式

? ? ? ? (1)編寫docker-compose.yml文件

version: "2.0"

volumes:

? applog:

? sharedata:

services:

? app:

? ? container_name: app-dev

? ? build:

? ? ? context: ./testbed

? ? ? dockerfile: dockerfile.ini

? ? image: app-dev:docker-compose

? ? volumes:

? ? ? - applog:/var/log

? ? ? - sharedata:/data

? ? privileged: true

? ? ports:

? ? ? - 5000:5000

? ? ? ? (2)配置docker環(huán)境,并運(yùn)行程序

————————————————

版權(quán)聲明:本文為CSDN博主「薄荷_紅茶」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/Wendy019900107/article/details/81985837

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容