1.拉取docker image
(1)我这里是单细胞镜像,你可以是其他。先按照作者的
docker build . -t scgan:latest -f dockerfile/Dockerfile
#这个后期不用docker pull fhausmann/scgan
(2)拉取之后:在你的镜像中会多一个:fhausmann/scgan这样的一个镜像。但我怕防止别人删除,所以我命名我的名称。36a711813aac 容器ID
先查一下容器ID;docker imgaes
sudo docker tag 36a711813aac lry/scgan
(3)这时候你的镜像中多了lry/scgan这样的镜像,然后把原来的fhausmann/scgan删除
sudo docker rmi fhausmann/scgan:latest
2.现在我需要用pycharm来连接docker;方便代码调试。
(1)docker修改名之后。运行他:需要指定端口:如下:
docker run -it -d --name 容器名 -p 主机端口号:容器端口号 镜像名
比如我的
sudo docker run -it -d --name lry_scgan -p 8086:22 lry/scgan
#这是另一个的
sudo docker run -it -d --name lry_tf1 -p 8087:22 lry/tensorflow
#gpu上
sudo docker run -it --gpus all -d --name lry_tf1 -p 8087:22 lry/tensorflow
#后面比较坑,他提供的build tensorflow,以及scRNA,不支持GPU。
#只能重新安装带cuda,tensorflow1,参考cuda,tensorflow1:https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/running.html#running
docker pull nvcr.io/nvidia/tensorflow:23.03-tf1-py3
#docker run --gpus all -it -rm -v local_dir:container_dir nvcr.io/nvidia/tensorflow:<xx.xx>-tf<x>-py<x>
sudo docker run -it --gpus all -d --name lry_tf1 -v ~/lry/lry_python/docker:/tmp/docker -p 8087:22 lry/tf1:latest
8087是我在外面pycharm需要连接的端口号,22是你本身docker的端口号。
(2)启动容器。查看容器id:docker ps
docker start lry_tf1
(3)进入容器
docker exec -it containerID /bin/bash
(4)若将本地代码复制到容器中进行运行,如pidc.tsv文件复制到容器中。
sudo docker cp pidc.tsv 6c51ba87b1e7:~/lry
2.安装ssh远程服务
apt-get -y update
apt-get install openssh-server
apt-get install openssh-client
- 修改SSH配置文件以下选项
vim /etc/ssh/sshd_config
以上命令打开sshd_config文件,在文件最后面添加以下。
PermitRootLogin prohibit-password注释
PermitRootLogin yes #允许root用户使用ssh登录
4.重启ssh服务
/etc/init.d/ssh restart
但出错了:ssh:could not resolve hostname start:name or service not known
这时候需要手动启动ssh;和sshd;
先看一下是否有这两个进程:如果没有则进行下列操作
ps -e|grep ssh
输入eval ssh-agent,如果出现这篇作者中的这个情况,可以这样解决https://blog.csdn.net/wfx056012/article/details/115707777
则进行下一步,ps -e|grep ssh,这时候多了ssh-agent进程
说明sshd的进程没有开始,正常情况下是会出现两个进程的,然后输入sudo /etc/init.d/ssh start,会出现这
再次输入ps -e|grep ssh,如果出现
那说明成功了。必须要两个进程都出现。
这里还有root密码配置(passwd:123),或者需要设置ssh免密登录这些,自行设置。
5.验证ssh连接是否成功:
6. 退出容器,连接测试
注意:以上2-5步骤都是在容器内部操作的。
ssh root@127.0.0.1 -p 8087
root:容器内部系统的root账号,不是服务器的用户账号
这样就可以了
二、配置pycharm并连接docker容器:可参考
https://blog.csdn.net/Thanours/article/details/109265315
docker查看gpu使用情况
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
测试你的TensorFlow是否成功,关键是否支持gpu
>>> import tensorflow as tf
#出现这个错误;
Illegal instruction (core dumped)
各种解决方法:降级TensorFlow1.5;升级这些都没用。原因是你的cpu不支持。查看是否有下列avx,没用说明你的机器不支持。
$ cat /proc/cpuinfo | grep avx