Como o pycharm se conecta ao contêiner do docker do servidor remoto para executar e depurar o código (1)

Existem duas maneiras de como o pycharm se conecta ao contêiner docker do servidor remoto:

O primeiro: pycharm se conecta ao contêiner do docker em execução via ssh

O segundo tipo: pycharm se conecta à imagem do docker, pycharm executa o código e cria automaticamente o contêiner

Este artigo é um tutorial para o primeiro método. Para o segundo método, clique no link acima

doença:

(1) Prepare a versão profissional do pycharm, a versão da comunidade não tem a função de conectar a um servidor remoto

(2) O servidor remoto ubuntu, docker foi instalado

Um, configure o contêiner docker do servidor remoto

1. Inicie e execute o contêiner interativo

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

Aqui, você precisa mapear a porta do host para a porta do contêiner e, em seguida, o contêiner é conectado por meio da porta.

-p 8080: 22: Aqui, a porta do host é 8080 e a porta do contêiner é 22

2. Modifique a senha de root do contêiner após entrar no interativo

passwd

3. Instale o openssh-server e o openssh-client para o contêiner

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

Se o seguinte erro ocorrer ao instalar o serviço ssh:

Isso ocorre porque a fonte em /etc/apt/source.list é relativamente antiga e precisa ser atualizada. O comando de atualização é o seguinte:

apt-get -y update

4. Modifique as seguintes opções no arquivo de configuração SSH

vim /etc/ssh/sshd_config

O comando acima abre o arquivo sshd_config e adiciona o seguinte no final do arquivo.


PermitRootLogin sim #Permitir que usuários root façam login usando ssh

 

5. Reinicie o serviço ssh

/etc/init.d/ssh restart

6. Saia do contêiner e teste a conexão

Nota: As etapas 2-5 acima são operadas dentro do contêiner.

ssh [email protected] -p 8080

root: a conta root do sistema interno do contêiner, não a conta do usuário do servidor

127.0.0.1: ip local do servidor

-p número da porta: a porta aqui é o número da porta do host 8080 mapeado quando iniciamos o contêiner na etapa 1, não a porta 22 do contêiner

Execute o comando acima no servidor:

Dessa forma, a conexão de teste é bem-sucedida e a próxima etapa é conectar-se ao contêiner docker no pycharm de nosso sistema Windows local.

Em segundo lugar, configure o pycharm e conecte-se ao contêiner do docker

1. Configuração configurar conexão remota

Crie um serviço de SFTP docker_test e preencha-o com referência à captura de tela acima.

Mapeamento de caminho:

2. Faça upload dos dados do código local para o contêiner do docker e execute

Depois de fazer upload dos dados do código, você precisa escolher definir o compilador Python:

Configure o interpretador Python para executar o código

Deve-se observar aqui que o ambiente operacional exigido pelo código também precisa ser instalado e configurado no contêiner docker. Por exemplo, eu preciso que o ambiente pytorch e as bibliotecas dependentes necessárias para a execução do código Python tenham sido instaladas no contêiner docker por meio de pip.

Terceiro, use o Dockerfile para criar um espelho que pode ser iniciado por ssh

Conteúdo do Dockerfile:

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

DE pytorch / pytorch: 1.4-cuda10.1-cudnn7-runtime

ADICIONE ferramentas / / 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 

#O seguinte é configurar o serviço ssh

EXECUTE 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 /

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

Na verdade, você pode adicionar o seguinte ao seu Dockerfile original

EXECUTE apt-get install -y openssh-server openssh-client && \
    echo root: 123456 | chpasswd && \
    echo "PermitRootLogin yes" >> / etc / ssh / sshd_config 

entre eles:

echo root: 123456 | chpasswd

123456 é a senha para definir a etapa 2

Observação aqui: depois de criar uma imagem usando o Dockerfile e iniciar e executar um contêiner, você deve iniciar manualmente o ssh do contêiner do docker:

/etc/init.d/ssh start

Nota: Independentemente do primeiro ou do segundo método, no pycharm para se conectar ao contêiner para executar o código, todos os caminhos relevantes no código devem ser escritos em caminhos absolutos, ou então um erro será relatado de que o arquivo ou pasta não pode ser encontrado quando o código é executado.

四 、 Referência

[1]  depurador de contêiner docker de conexão remota pycharm

Acho que você gosta

Origin blog.csdn.net/Thanours/article/details/109265315
Recomendado
Clasificación