第一,docker安装
参考各类docker技术文章
第二,开启容器
sudo nvidia-docker run -itd -v /home/docker_images/cuda_opencv:/home --cap-add sys_ptrace -p 9005:22 ubuntu1804_cuda102:latest /bin/bash
进入容器
docker exec -it 容器ID /bin/bash
先安装一些软件
apt-get install vim passwd openssl openssh-server -y
修改root密码
passwd
配置ssh
vim /etc/ssh/sshd_config
UsePAM no
UsePrivilegeSeparation no
PermitRootLogin yes
启动ssh并设置为开机启动
systemctl start sshd
systemctl enable sshd
发现安装完 openssh-server,apt-get install openssh后,忘了启动ssh。
用 service ssh start
或者service ssh restart
启动即可。
如果出现
docker容器内访问宿主机,访问不通 错误:Host is unreachable
可如下操作:
#查看docker网关
ifconfig
# 查看容器的ip
#docker inspect 容器ID
# 添加ip段或者ip到白名单
firewall-cmd --zone=trusted --add-source=172.17.0.1/16 --permanent
firewall-cmd --reload
一般在docker容器内我们一般不这么干,因为容器内没有systemctl权限……,我们依然还是使用脚本的形式将ssh设为自启,只不过这个的这个脚本和我们使用Dockerfile的脚本不一样。具体步骤如下:
在 /root 目录下新建一个 start_ssh.sh文件,并给予该文件可执行权限。
touch /root/start_ssh.sh vim /root/start_ssh.sh chmod +x /root/start_ssh.sh
而start_ssh.sh 脚本的内容,如下:
#!/bin/bash
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log ###其他服务也可这么实现
将start_ssh.sh脚本添加到启动文件中
vim /root/.bashrc
# startup run
if [ -f /root/start_ssh.sh ]; then
. /root/start_ssh.sh
fi
ssh-设置免密登录
设置免密登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
第三,配置clion
可参考如下文字配置
-
https://blog.csdn.net/xiaomu_347/article/details/126762754
-
http://events.jianshu.io/p/20935b0d1940
-
https://blog.csdn.net/dtjun_sjtu/article/details/122662967
-
https://blog.csdn.net/dtjun_sjtu/article/details/122662967