Home CLion Connect Remote Server (Docker)
Post
Cancel

CLion Connect Remote Server (Docker)

需求

  • 为了不混淆生产环境,使用Docker搭建运行环境
  • 在本地CLion中编写代码,在远程服务器的Docker里运行代码

环境

  • Clion装在本地Windows 11
  • 远程服务器Ubuntu 20.04

Clion连接服务器内的Docker

Docker

  • Docker安装 (仅供参考)

    1
    2
    
    curl -sSL https://get.docker.com/ | sh
    sudo chmod 777 /var/run/docker.sock
    
  • Docker创建容器
    1
    
    sudo docker run --privileged -itd --name helib -p 12022:22 ubuntu:20.04 bash
    

    命令解释:--privileged提高权限,不然可能没办法debug;--name指定容器名字;-p指定端口,用于服务器端口映射到Docker内端口,由于后续需要通过ssh连接Docker容器,故映射到22端口;使用的镜像为ubuntu:20.04,镜像随意;bash指定运行终端 PS. 可以加个-v参数指定挂载目录

  • 由于前面用了-d让容器在后台运行,所以需要用exec命令进入容器
    1
    
    sudo docker exec -it helib bash
    
  • 安装ssh等服务

    • Ubuntu (sudo)
      1
      
      apt update && apt install openssl openssh-server -y
      

      后面依次选6,31

      1
      
      echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
      
      1
      
      service ssh restart
      

      设置Docker容器的root密码,用于后续连接:

      1
      
      passwd root
      
    • CentOS (sudo)

      1
      2
      3
      4
      5
      
      yum install openssh-server    # 安装OpenSSH服务
      systemctl enable sshd    # 启动SSH服务并设置为开机启动
      systemctl start sshd
      firewall-cmd --zone=public --add-port=22/tcp --permanent    # 开启SSH端口
      firewall-cmd --reload
      
  • 测试连接

    • 在Docker外,用ssh测试连接:ssh root@localhost -p 12022,输入Docker的root密码,成功如下:welcome

CLion

  • Settings -> Build… -> Toolchains -> ‘+’ -> Remote Host settings
  • 可以自定义名字,然后设置连接 config
  • 按下图填写,注意port应该填写的是Docker对外映射的端口,我这里就应该是12022,而不是22,测试连接没问题就可以了 在这里插入图片描述
  • 设置CMake:Settings -> Build… -> CMake,指定toolchains就行 cmake-settings
  • 另外,如果想把代码啥的也同步到Docker上,则添加SFTP:Settings -> Build… -> Deployment,添加SFTP,设置Mappings,见下图: sftp
  • 下面这个看自己情况设置 upload

至此,CLion可以顺利连接到服务器里的Docker啦

参考

以clion为例记录一次基于docker环境配置开发-CSDN

This post is licensed under CC BY 4.0 by the author.