使用SSH远程直连Docker容器

文章目录

    • 1. 下载docker镜像
    • 2. 安装ssh服务
    • 3. 本地局域网测试
    • 4. 安装cpolar
    • 5. 配置公网访问地址
    • 6. SSH公网远程连接测试
    • 7.固定连接公网地址
    • 8. SSH固定地址连接测试

转载自cpolar极点云文章:SSH远程直连Docker容器

在某些特殊需求下,我们想ssh直接远程连接docker 容器,下面我们介绍结合cpolar工具实现ssh远程直接连接docker容器

1. 下载docker镜像

本文下载一个tomcat镜像为例子,输入命令拉取tomcat镜像:

docker pull tomcat

我们下载的是tomcat镜像,tomcat端口容器内部默认是8080,我们把tomcat容器内部端口映射到宿主机的8088端口上,运行镜像容器,

docker run -it -d -p8088:8080 tomcat /bin/bash

运行后查看一下正在运行的容器

docker ps -a

可以看到已经运行了,同时也看到了容器ID

image-20230621132259092

2. 安装ssh服务

进入容器

docker exec -it 容器ID /bin/bash

进入容器后,我们安装ssh服务,首先更新包管理器

apt-get update

安装ssh服务

apt-get install openssh-server

安装文件编辑器vim

apt-get install vim

设置SSH登录密码,第一次是设置密码,第二次是确认密码,输入两次

passwd

修改配置文件

vim /etc/ssh/sshd_config

需要修改两个地方:

第一:把ssh 服务默认的22端口设置为与容器服务的端口一致,如我们是tomcat容器,就设置为8080,因为我们运行容器的时候挂载的是内部的8080端口映射到宿主机的8088端口,所以需要和容器内部端口保持一致,

第二:将PermitRootLogin prohibit-password修改为PermitRootLogin yes,开启使用密码登录,设置完成后保存退出

image-20230621134037435

修改完成后,重启ssh服务

service ssh restart

3. 本地局域网测试

上面我们设置完成了在容器内部安装了ssh服务,现在进行局域网测试连接,用户名默认是root,端口号这里需要输入我们映射到宿主机的8088端口

ssh -p 8088 root@192.168.10.125

登录过程中需要输入密码,即上面设置的密码,成功后,可以看到我们成功进入了容器内部

image-20230621134923601

4. 安装cpolar

安装cpolar我们在宿主机安装,不需要进入容器内部安装

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

5. 配置公网访问地址

成功启动cpolar服务后,我们在浏览器上访问Linux局域网ip地址+9200端口,登录cpolar web UI管理界面。

cpolar官网地址: https://www.cpolar.com

登录成功后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:8088
  • 域名类型:临时随机TCP端口
  • 地区:选择China VIP

点击创建

image-20230621140339055

然后打开左侧在线隧道列表,查看刚刚创建隧道后生成的tcp连接的公网地址

image-20230621140440856

6. SSH公网远程连接测试

使用ssh 命令行连接模式,注意,-p后面的端口是cpolar中生成的公网地址对应的端口

ssh -p 端口 root@公网地址

执行后,我们可以看到成功进入容器,这样ssh 远程直接连接docker容器就设置好了

image-20230621140958009

7.固定连接公网地址

要注意的是,以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。

配置固定tcp端口地址需要将cpolar升级到专业版套餐或以上。

保留一个固定tcp地址

登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为我的世界保留一个固定tcp地址:

  • 地区:选择China vip
  • 描述:即备注,可自定义

点击保留

image-20230621141349951

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

image-20230621141415688

打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的编辑

image-20230621141500437

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的地址,

点击更新

image-20230621141538237

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定tcp地址。

image-20230621141556522

8. SSH固定地址连接测试

输入ssh 连接命令,使用我们上面的公网地址和端口,我们可以看到,连接成功,固定ssh远程直接连接docker容器就设置好了

image-20230621141859079

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/3157.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STM32智能车】电机控制

【STM32智能车】电机控制 PWMPWM基本用法: 电机驱动基本控制基本状态 欢迎收看由咸鱼菌工作室出品的STM32系列教程。本篇内容主要电机控制 PWM 我们要控制电机,就要先了解一下PWM。 PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通…

2022前端趋势报告(下)

前端博主,热衷各种前端向的骚操作,经常想到哪就写到哪,如果有感兴趣的技术和前端效果可以留言~博主看到后会去代替大家踩坑的~ 主页: oliver尹的主页 格言: 跌倒了爬起来就好~ 一、前言 本文内容来自于《St…

go 调试利器之pprof指标分析

文章目录 概要一、指标类型1.1、堆栈指标1.2、CPU指标分析1.3、http-pprof 二、go tool pprof2.1、可视化2.2、CPU火焰图 概要 Go语言原生支持对于程序运行时重要指标或特征进行分析。pprof是其中一种重要的工具,其不仅可以分析程序运行时的错误(内存泄…

html5前端学习2

一篇思维题题解: 第五周任务 [Cloned] - Virtual Judge (vjudge.net) http://t.csdn.cn/SIHdM 快捷键: CtrlAltDown 向下选取 CtrlAltUp 向上选取(会出现多个光标,可以同时输入) CtrlEnter …

24个Jvm面试题总结及答案

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每…

html实现多种风格的时间轴(附源码)

文章目录 1.设计来源1.1 对称风格时间轴1.2 横向风格时间轴1.3 回忆风格时间轴1.4 记事风格时间轴1.5 简易风格时间轴1.6 科技风格时间轴1.7 列表风格时间轴1.8 跑道风格时间轴1.9 人物风格时间轴1.10 容器风格时间轴1.11 沙滩风格时间轴1.12 双边风格时间轴1.13 图文风格时间轴…

基于原生 js 实现今日新闻网站

完整资料进入【数字空间】查看——baidu搜索"writebug" 一、今日新闻网站设计报告 1.1 1 设计思路 该网站设计大部分都是基于原生 js 实现。基本思想为首先将基本的页面架构包括 header,导航条写好。之后根据后台 PHP 请求接口请求返回 JSON 格式数据后…

【Linux 系统编程】Linux背景介绍 及 基本指令详解(一)

文章目录 1. Linux背景1.1 发展史1.2 开源精神1.3 官网1.4 企业应用现状1.5 发行版本1.6 os概念,定位 2. Linux下基本指令2.1 几个常用基本命令演示2.2 某些概念的解释2.3 ls 指令2.4 pwd 指令2.5 cd 指令Linux的目录结构绝对路径与相对路径cd 常用快捷命令 2.6 tou…

30_小驰私房菜_qcom根据关键日志信息,快速排查问题

根据关键日志信息,能帮忙我们快速的定位和分析问题。是一项必须得掌握的技能。 一、查看当前是哪个app调用的相机 logcat 关键字“CameraService::connect” 如下面日志打印所示,我们还可以看到是调用的Camera API 1还是Camera API 2. 二、查看配流情况 1) qcom 平台 …

一套A股量化系统

shares A 股量化交易系统后台开发语言 Go/Python gmsec算法使用:pytorch全链路量化,行业板块分析,直接贴图。欢迎体验

12 | 领域建模:如何用事件风暴构建领域模型?

目录 事件风暴需要准备些什么? 1. 事件风暴的参与者 2. 事件风暴要准备的材料 3. 事件风暴的场地什么样的场地适合做事件风暴呢? 4. 事件风暴分析的关注点 如何用事件风暴构建领域模型? 1. 产品愿景 2. 业务场景分析 3. 领域建模 4…

HashSet、LinkedHashSet、TreeSet有什么区别

- HashSet、LinkedHashSet 和 TreeSet 都是 Set接口的实现类,都能保证元素唯一,并且都不是线程安全的。HashSet 的底层数据结构是哈希表(基于 HashMap 实现),元素存入和取出顺序不一致。LinkedHashSet 的底层数据结构…