pycharmはどのようにしてリモートサーバーのdockerコンテナーに接続して、コードを実行およびデバッグしますか(1)

pycharmがリモートサーバーのドッカーコンテナに接続する方法は2つあります。

1つ目:pycharmはsshを介して実行中のdockerコンテナに接続します

2番目のタイプ:pycharmはdockerイメージに接続し、pycharmはコードを実行してから、コンテナーを自動的に作成します

この記事は最初の方法のチュートリアルです。2番目の方法については、上のリンクをクリックしてください。

状態:

(1)pycharmのプロフェッショナルバージョンを準備します。コミュニティバージョンにはリモートサーバーに接続する機能がありません。

(2)リモートサーバーubuntu、dockerがインストールされています

1つは、リモートサーバーのドッカーコンテナを構成することです。

1.インタラクティブコンテナを起動して実行します

docker run -it --name pycharm_test -v /home/th/PycharmProjects/qa/:/workspace/qa -p 8080:22 --gpus all pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime /bin/bash

ここでは、ホストポートをコンテナポートにマップする必要があります。その後、コンテナはポートを介して接続されます。

-p 8080:22:ここで、ホストポートは8080で、コンテナポートは22です。

2.インタラクティブを入力した後、コンテナのルートパスワードを変更します

passwd

3.コンテナのopenssh-serverとopenssh-clientをインストールします

apt-get install openssh-server
apt-get install openssh-client

sshサービスのインストール時に次のエラーが発生した場合:

これは、/ etc / apt / source.listのソースが比較的古く、更新する必要があるためです。更新コマンドは次のとおりです。

apt-get -y update

4.SSH構成ファイルの次のオプションを変更します

vim /etc/ssh/sshd_config

上記のコマンドはsshd_configファイルを開き、ファイルの最後に以下を追加します。


PermitRootLogin yes#rootユーザーがsshを使用してログインできるようにする

 

5.sshサービスを再起動します

/etc/init.d/ssh restart

6.コンテナを終了し、接続をテストします

注:上記の2〜5の手順は、すべてコンテナー内で実行されます。

ssh [email protected] -p 8080

root:サーバーのユーザーアカウントではなく、コンテナの内部システムのルートアカウント

127.0.0.1:サーバーローカルIP

-pポート番号:ここのポートは、ステップ1でコンテナーを開始したときにマップされたホストポート番号8080であり、コンテナーのポート22ではありません。

サーバーで上記のコマンドを実行します。

このようにして、テスト接続は成功し、次のステップは、ローカルWindowsシステムのpycharmにあるdockerコンテナーに接続することです。

次に、pycharmを構成し、dockerコンテナーに接続します

1.構成リモート接続の構成

SFTPサービスdocker_testを作成し、上のスクリーンショットを参照して入力します。

パスマッピング:

2.ローカルコードデータをドッカーコンテナにアップロードして実行します

コードデータをアップロードした後、pythonコンパイラを設定することを選択する必要があります。

コードを実行するようにpythonインタープリターを設定します

ここで、コードに必要な動作環境もdockerコンテナにインストールして構成する必要があることに注意してください。たとえば、pytorch環境が必要であり、pythonコードの実行に必要な依存ライブラリがpipを介してdockerコンテナにインストールされている必要があります。

3つ目は、Dockerfileを使用して、sshで開始できるミラーを作成することです。

Dockerfileの内容:

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

FROM pytorch / pytorch:1.4-cuda10.1-cudnn7-ランタイム

ツールの追加
// opt / tools / RUN mkdir〜 / .pip / && cp /opt/tools/pip_sources_aliyun.txt〜/.pip/pip.conf && \
  cp /opt/tools/sources.list / etc / apt / && apt -y update && \
  apt install -y vim zip && \
  / opt / conda / bin / pip install -r /opt/tools/requirements.txt --trusted-host mirrors.aliyun.com 

#以下はsshサービスを設定するためのものです

apt-get install -y openssh-server openssh-client && \
    echo root:123456 |を実行します。chpasswd && \
    echo "PermitRootLogin yes" >> / etc / ssh / sshd_config

ENV LANG C.UTF-8
CMD ["/ usr / sbin / sshd"、 "-D"]
WORKDIR / work /

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

実際、元のDockerfileに以下を追加できます

apt-get install -y openssh-server openssh-client && \
    echo root:123456 |を実行します。chpasswd && \
    echo "PermitRootLogin yes" >> / etc / ssh / sshd_config 

その中で:

エコールート:123456 | chpasswd

123456は、手順2を設定するためのパスワードです。

ここでの注意:Dockerfileを使用してイメージを作成し、コンテナーを開始して実行した後、dockerコンテナーのsshを手動で開始する必要があります。

/etc/init.d/ssh start

注:最初または2番目の方法に関係なく、コードを実行するためにコンテナーに接続するpycharmでは、コード内の関連するすべてのパスを絶対パスで記述する必要があります。そうしないと、コードの実行時にファイルまたはフォルダーが見つからないというエラーが報告されます。

四、参考

[1]  pycharmリモート接続ドッカーコンテナデバッガー

おすすめ

転載: blog.csdn.net/Thanours/article/details/109265315