Linux服务器上,打包带有ssh服务的镜像,作为Pycharm的远程Python环境步骤

1. 打包基础镜像Dockerfile参考:

FROM tensorflow/tensorflow:2.3.0-gpu

COPY .ssh /root/.ssh  # 因为本人需要使用git安装自己公司的项目,所以需要自己电脑的ssh相关文件
RUN chmod 600 /root/.ssh/id_rsa

# 改成北京时间
RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN chmod 777 /tmp  # 下面安装ssh需要
RUN apt-get update && apt-get -y install openssh-server apt-transport-https gcc g++ make git-core lsof vim procps

RUN pip install --upgrade pip -i https://pypi.douban.com/simple/
RUN pip install Cython==0.28.5 -i https://pypi.douban.com/simple/
RUN git+ssh://git@***/***[email protected]  # 安装本公司的相关算法包

RUN mkdir "/run/sshd"  # 启动ssh服务需要
# authorize SSH connection with root account  给镜像内部的root账号开通ssh连接权限
RUN sed -in-place -e 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
RUN service ssh restart  # 启动镜像内部的ssh服务

# change password root  修改root账号密码
RUN echo "root:root"| chpasswd

EXPOSE 22  # 开放ssh 22端口,这些都可以通过配置进行修改

RUN rm -rf /root/.ssh

2- build镜像脚本:

#!/usr/bin/env bash
cd ..
datetime=$(date +%Y%m%d%H%M)

# 创建服务基础镜像
image="dockerhub.***.com/nlp_application/tensorflow_ssh:2.3.0-gpu-"${datetime}
docker build --platform amd64 -t ${image} -f docker/Dockerfile .
docker push ${image}

 注意目录相对位置。

 3- 执行 sh build.sh即可打包好所需的,带有ssh的基础镜像,且内部已经安装好自己所需要的相关其他包服务。

4- 启动上述镜像

docker rm -f base_image
docker run -itd --name base_image -p 50023:22 -v /***/:/tmp \
dockerhub.***.com/nlp_application/tensorflow_ssh:2.3.0-gpu-202203021928

镜像内部22暴露到50023端口

在服务器上,可通过如下指令测试是否正常:

ssh -p 50023 root@ip

如果提示输入密码,然后可以正常进入容器内部,则表示一切正常。 

5- 把远程服务器上的50023端口打洞到本地的50023端口; 

6- 本地Pycharm配置步骤:

Linux服务器上,打包带有ssh服务的镜像,作为Pycharm的远程Python环境步骤_第1张图片

Linux服务器上,打包带有ssh服务的镜像,作为Pycharm的远程Python环境步骤_第2张图片

 

Linux服务器上,打包带有ssh服务的镜像,作为Pycharm的远程Python环境步骤_第3张图片

Linux服务器上,打包带有ssh服务的镜像,作为Pycharm的远程Python环境步骤_第4张图片在容器内部确认python路径,填入上图中编辑器位置: 

 同时,配置下面的映射文件路径。

点击Finush,如果可以正常显示安装的python依赖包,则表示一切正常。

 

你可能感兴趣的:(docker,ssh,linux,服务器,docker,pycharm)