M1 Docker:Pycharm SSH 连接Docker容器

一、准备工作

1. pycharm 专业版 + Docker的Tensorflow镜像

二、Docker容器内配置过程

主要参考了:https://www.jianshu.com/p/f6936cdf299d
过程略有不同

step1: 创建一个新容器
  • 完成端口映射
  • sftp默认22端口
docker run -tid --name tf2_ssh<容器名> -p 8022:22 -p 8887:8888 armswdev/tensorflow-arm-neoverse-n1:r21.10-tf-2.6.0-eigen<镜像名:版本> /usr/sbin/init

step2: 容器中安装ssh服务
sudo apt update
sudo apt install openssh-server
step3: 修改root密码
  • 初始化的root密码是随机的,这里修改一下
sudo passwd

step4: 修改ssh配置
# 修改ssh配置
sudo vi /etc/ssh/sshd_config

# 主要修改以下部分
1. #注释 Subsystem      sftp    /usr/libexec/openssh/sftp-server
2. Subsystem       sftp    internal-sftp
3. PubkeyAuthentication yes #启用公钥私钥配对认证方式
4. AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
5. PermitRootLogin yes #root能使用ssh登录

step5: 重新启动ssh服务
sudo /etc/init.d/ssh restart

三、本地测试能否正常连接

step6: 本地检查22端口映射
docker port tf2_ssh 22

在这里插入图片描述

step7: 本地验证登陆
  • 提示输入密码
ssh root@0.0.0.0 -p 8022

在这里插入图片描述

四、Pycharm SSH连接Docker容器

主要参考:https://www.jianshu.com/p/c27066e848c9
pycharm版本略有不同,过程有出入

step8: 选择python解释器
  • 这里和【本地测试】环节的ip 、端口保持一致,Username选择root

在这里插入图片描述

  • next
  • 输入密码,next

在这里插入图片描述

step9:相关路径选择
  • python解释器路径
    • 这里默认的是/usr/bin/python,但容器中默认的不一定是这个,在容器中输入which python,确定路径为:
      在这里插入图片描述
  • 本地目录映射到容器
    • sync folders: 选择一下本地项目路径 -> 容器路径
  • finish

在这里插入图片描述

step10: run一下试试
  • 写个脚本run一下,仍然是官网代码
import tensorflow as tf
print(tf.__version__)

mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
  • 如果遇到下面的报错:
    • 在容器中下载:sudo apt-get install libopenblas-dev
    • 刷新一下pycharm即可
ImportError: libopenblas.so.0: cannot open shared object file
  • 中国人不骗中国人,代码运行结果:

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值