文档章节

centos 实现ssh远程连接docker

Mr_Tea伯奕
 Mr_Tea伯奕
发布于 2016/10/01 22:56
字数 1486
阅读 675
收藏 3
点赞 1
评论 0

一、查看当前镜像

[root@iZ25av9xi4hZ ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              980e0e4c79ec        3 weeks ago         196.7 MB
[root@iZ25av9xi4hZ ~]#

上面的centos 是通过docker pull centos拉取获得的最新centos7 版本

二、创建一个容器,并配置ssh、tomcat、jdk

2.1 创建一个容器(命名为base_centos)

[root@iZ25av9xi4hZ ~]# docker run -it --name base_centos  centos:latest  /bin/bash
[root@cf6b692adf02 /]#

2.2 安装net-tools, iproute 

net-tools 可以使用ifconfig等命令

[root@cf6b692adf02 /]# yum install -y net-tools

iproute 可以使用ip add 查看网络配置 

[root@cf6b692adf02 /]# yum install -y iproute

3、sshd安装,及配置

     3.1 安装openssh

[root@cf6b692adf02 /]# yum install -y openssh
[root@cf6b692adf02 /]# yum install -y openssh-server
[root@cf6b692adf02 /]# yum install -y openssh-clients

    3.2 配置私钥

  输入 命令显示如下,分别配置私钥。其中输入的地方全部选择enter键跳过

[root@cf6b692adf02 /]#/usr/sbin/sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
[root@cf6b692adf02 /]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
d6:46:9c:ef:bf:5d:45:95:59:50:b9:9b:fa:a6:1d:3d root@cf6b692adf02
The key's randomart image is:
+--[ RSA 2048]----+
|              .oO|
|         . .   +.|
|          +     o|
|         o .   o |
|        S o .   +|
|       . . .   oo|
|            . .Eo|
|             o.o+|
|             .*+.|
+-----------------+
[root@cf6b692adf02 /]# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
Generating public/private ecdsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_ecdsa_key.
Your public key has been saved in /etc/ssh/ssh_host_ecdsa_key.pub.
The key fingerprint is:
7f:ad:3b:5f:93:c2:6e:f0:05:f8:75:80:18:f8:ba:83 root@cf6b692adf02
The key's randomart image is:
+--[ECDSA  256]---+
|         ..o .   |
|        . . . .  |
|         .  .  . |
|          .. . ..|
|        S.  . o .|
|        .. ..o ..|
|       . .. +ooo.|
|      E o  .o+...|
|         .  +=.  |
+-----------------+
[root@cf6b692adf02 /]#
[root@cf6b692adf02 /]# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
The key fingerprint is:
44:93:0d:94:eb:e2:a4:3e:a3:fe:ab:e7:4f:2e:f0:44 root@cf6b692adf02
The key's randomart image is:
+--[ED25519  256--+
|       .==       |
|       .o..      |
|        ..       |
|    E  ..        |
|   .   .S        |
|  . . o .        |
|   + +..         |
|    Bo.          |
| .+B=*o          |
+-----------------+
[root@cf6b692adf02 /]#

 最后执行一次,再查看sshd进程,发现是启动的。

[root@cf6b692adf02 /]#ps -a | grep sshd
[root@cf6b692adf02 /]# /usr/sbin/sshd
[root@cf6b692adf02 /]# ps -ef | grep sshd
root       109     1  0 13:16 ?        00:00:00 /usr/sbin/sshd
root       128     1  0 13:22 ?        00:00:00 grep --color=auto sshd
[root@cf6b692adf02 /]#

将sshd 加入开机自启(/etc/rc.d/rc.local)

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/usr/sbin/sshd

 

4、tomcat 安装及配置

     4.1 安装wget命令

#yum install -y wget

     4.2 下载tomcat8

[root@cf6b692adf02 tmp]# wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

    4.3 安装tomcat8,并加入开机自启

5、jdk 安装配置

[root@cf6b692adf02 tmp]#wget http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.rpm?AuthParam=1475328855_221393517c76253d935635ef2ec114d1

[root@cf6b692adf02 tmp]#mv jdk-8u101-linux-x64.rpm?AuthParam=1475328855_221393517c76253d935635ef2ec114d1 jdk.rpm
[root@cf6b692adf02 tmp]#rpm -ivh jdk.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8.0_101-2000:1.8.0_101-fcs  ################################# [100%]
Unpacking JAR files...
        tools.jar...
        plugin.jar...
        javaws.jar...
        deploy.jar...
        rt.jar...
        jsse.jar...
        charsets.jar...
        localedata.jar...

[root@cf6b692adf02 tmp]# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
[root@cf6b692adf02 tmp]#

jdk rpm安装在/usr/java/jdk1.8.0_101/jre/bin/java

5、写脚本启动关闭tomcat

5.1 安装vim

[root@cf6b692adf02 tomcat]# yum install vim* -y

 

五、

5.1 创建新的镜像文件

将之前做的容器弄成镜像文件,取名base:latest

[root@iZ25av9xi4hZ ~]# docker commit cf6b692adf02 base:latest
sha256:a90294e9b9b5b375c895ff32bfd34120797e8391bdbcbfa53b3792d636280f70

查看镜像下载所有的镜像文件

[root@iZ25av9xi4hZ ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
base                latest              a90294e9b9b5        2 minutes ago       934.9 MB
docker.io/centos    latest              980e0e4c79ec        3 weeks ago         196.7 MB
[root@iZ25av9xi4hZ ~]#

5.2创建tomcat_cl 容器,并设置其ssh对于宿主机器的10022端口,8080端口对应宿主机器的10088端口 

[root@iZ25av9xi4hZ ~]# docker run  -p 10022:22 -p  10088:8080 --name tomcat_cl  -d  base:latest  /usr/sbin/sshd -D
e21a8af9269cd06b3950f59020de4d29723580c20bd35334ea6ff3fed28fb043
[root@iZ25av9xi4hZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                                            NAMES
e21a8af9269c        base:latest         "/usr/sbin/sshd -D"   7 seconds ago       Up 6 seconds        0.0.0.0:10022->22/tcp, 0.0.0.0:10088->8080/tcp   tomcat_cl
cf6b692adf02        centos:latest       "/bin/bash"           About an hour ago   Up 10 minutes                                                        base_centos
[root@iZ25av9xi4hZ ~]#

5.3 ssh登录容器

[root@iZ25av9xi4hZ ~]# ssh root@127.0.0.1 -p 10022
The authenticity of host '[127.0.0.1]:10022 ([127.0.0.1]:10022)' can't be established.
ECDSA key fingerprint is 7f:ad:3b:5f:93:c2:6e:f0:05:f8:75:80:18:f8:ba:83.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:10022' (ECDSA) to the list of known hosts.
root@127.0.0.1's password:
Permission denied, please try again.

开始没有创建密码,所以叫修改一下密码

[root@iZ25av9xi4hZ ~]# docker exec -it tomcat_cl /bin/bash
[root@e21a8af9269c /]# passwd
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@e21a8af9269c /]# exit
exit
[root@iZ25av9xi4hZ ~]#

再次ssh ,可以正常进入 

[root@iZ25av9xi4hZ ~]# ssh root@127.0.0.1 -p 10022
root@127.0.0.1's password:
[root@e21a8af9269c ~]#

 

5.4 在宿主机器检查对应的映射端口

[root@iZ25av9xi4hZ ~]# ps -aux | grep 10022
root     17088  0.0  1.5 188360 15708 ?        Sl   22:41   0:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 10022 -container-ip 192.168.0.3 -container-port 22
root     17218  0.0  0.0 112660   960 pts/3    S+   22:46   0:00 grep --color=auto 10022
[root@iZ25av9xi4hZ ~]# ps -aux | grep 10088
root     17079  0.0  1.5 131020 15652 ?        Sl   22:41   0:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 10088 -container-ip 192.168.0.3 -container-port 8080
root     17226  0.0  0.0 112664   960 pts/3    S+   22:47   0:00 grep --color=auto 10088
[root@iZ25av9xi4hZ ~]#

进入容器去启动tomcat

[root@iZ25av9xi4hZ ~]# ssh root@127.0.0.1 -p 10022
root@127.0.0.1's password:
[root@e21a8af9269c ~]# ps -ef | grep java
root       178   162  0 14:52 pts/0    00:00:00 grep --color=auto java
[root@e21a8af9269c ~]# /app/apache-tomcat-cl/bin/startup.sh
Using CATALINA_BASE:   /app/apache-tomcat-cl
Using CATALINA_HOME:   /app/apache-tomcat-cl
Using CATALINA_TMPDIR: /app/apache-tomcat-cl/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /app/apache-tomcat-cl/bin/bootstrap.jar:/app/apache-tomcat-cl/bin/tomcat-juli.jar
Tomcat started.
[root@e21a8af9269c ~]# ps -ef | grep java                                                                                                                                         root       193     1 56 14:52 pts/0    00:00:02 /usr/bin/java -Djava.util.logging.config.file=/app/apache-tomcat-cl/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -classpath /app/apache-tomcat-cl/bin/bootstrap.jar:/app/apache-tomcat-cl/bin/tomcat-juli.jar -Dcatalina.base=/app/apache-tomcat-cl -Dcatalina.home=/app/apache-tomcat-cl -Djava.io.tmpdir=/app/apache-tomcat-cl/temp org.apache.catalina.startup.Bootstrap start
root       210   162  0 14:52 pts/0    00:00:00 grep --color=auto java
[root@e21a8af9269c ~]#

通过浏览器输入宿主ip:端口。可以看到tomcat运行起来了。

 

docker一个小的案例容器搞定,有什么错误的地方欢迎指出

 

 

 

© 著作权归作者所有

共有 人打赏支持
Mr_Tea伯奕
粉丝 3
博文 156
码字总数 49167
作品 0
朝阳
其他
docker创建支持ssh服务的centos镜像

以centos为基础,目的使用ssh服务远程连接docker容器 环境:宿主机centos7,直接搜索docker的centos镜像,下载最新版本 1、先按照docker:yum install -y epel-release yum install -y dock...

射手Mr吴 ⋅ 2016/07/13 ⋅ 0

Dockerfile:制作可ssh登录的镜像

我们先手动制作一个可以ssh登录的容器,然后按照操作步骤编写Dockerfile,用docker build根据Dockerfile创建镜像,最后我们可以用这个镜像来生成可ssh登录的容器了。 一、首先创建一个容器并...

张斌_青岛 ⋅ 2014/12/02 ⋅ 0

Docker Centos安装Openssh

Docker Centos安装Openssh 环境介绍: Docker版本:1.5.0 镜像:docker.io:centos latest 操作步骤: 1、启动镜像 docker run -ti centos /bin/bash 2、安装passwd yum install passwd -y 3、......

Mr_sheng ⋅ 2017/11/13 ⋅ 0

开源中国的 Docker 优秀文章汇总

Docker 是一个开源的 Linux 应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互...

oschina ⋅ 2014/08/25 ⋅ 11

Docker虚拟化技术系列之-DockerFile案例演练

Dockfile是一种被Docker程序能够解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。 Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书...

wgkgood ⋅ 2017/02/21 ⋅ 0

OSChina 技术专题之 Docker 更新版(201412)

Docker 是一个开源的 Linux 应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相...

OSC编辑部 ⋅ 2014/10/13 ⋅ 18

centos7下安装docker(14安装docker machine​)

为所有host安装和配置docker 之前我们手工安装了一个docker host: 1.安装https CA证书 2.添加GPG key 3.添加docker apt源 4.安装docker 对于多主机的环境手工方式效率低且不容易保证一致性,...

cstsncv ⋅ 2017/11/10 ⋅ 0

基于linux的ssh端口转发

基于linux的Ssh端口转发 SSH 端口转发能够提供两大功能: 加密 SSH Client(客户端) 端至 SSH Server(服务端)之间的通讯数据 突破防火墙的限制完成一些之前无法建立的 TCP 连接 工作原理:...

Gaten ⋅ 2017/09/30 ⋅ 0

Centos7.2下Jumpserver V4.0环境安装部署记录

之前介绍了Jumpserver在Centos6系统下的安装部署,下面说说在Centos7.2下安装最新版的Jumpserver4.0的操作记录(使用Docker一键安装): 参考:https://github.com/jumpserver/jumpserver ju...

吞吞吐吐的 ⋅ 2017/10/11 ⋅ 0

centos7+docker综合实验

dockerfile,registry,使用nginx反向代理搭建私有仓库 防伪码:你好阳光 一、实验拓扑: 二、实验要求: 实验机器(两台centos7.2) 1、registry_server和docker宿主机均需安装docker软件包并...

何小帅 ⋅ 2016/12/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java集合类总结笔记

一、集合类的层次关系 主要容器集合类的特点: ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除的有序序列 ArrayDeque 一种用循环数组实现的...

edwardGe ⋅ 7分钟前 ⋅ 0

spring RMI远程调用

RMI https://www.cnblogs.com/wdh1995/p/6792407.html

BobwithB ⋅ 12分钟前 ⋅ 0

Jenkins实践2 之基本配置

1 插件管理 系统管理->插件管理 在可选插件中可以自主安装插件 2 管理用户 系统管理->管理用户->新建用户 3 安全配置 系统管理->全局安全配置 授权策略 选择安全矩阵 然后添加现有的用户,赋...

晨猫 ⋅ 12分钟前 ⋅ 0

c++智能指针

1、是一种泛型类,针对指针类型的泛型类,会保存指针 2、重载了符号 *和-> 对智能指针使用这两个符号,相当于对保存的泛型使用这两个符号 3、当智能指针引用计数为0时,会去释放指针指向的资...

国仔饼 ⋅ 13分钟前 ⋅ 0

Spring Boot错误处理机制

1)、SpringBoot默认的错误处理机制 默认效果: 1)、浏览器,返回一个默认的错误页面 浏览器发送请求的请求头: 2)、如果是其他客户端,默认响应一个json数据 原理: 可以参照ErrorMvcAut...

小致dad ⋅ 15分钟前 ⋅ 0

ftp连接不上的终极办法 SFTP

假如FTP由于各种原因就是连不上,那么用SFTP协议吧,使用登录服务器的账号密码。

sskill ⋅ 19分钟前 ⋅ 0

Unity 围绕旋转角度限制(Transform.RotateAround)

在 Unity 中可以利用 Transform.RotateAround 围绕指定物体进行旋转,但某些情况下可能需要对旋转角度进行控制。我是先计算出预设角度大小,然后判断是否在限定角度范围内是则进行旋转。 相关...

大轩 ⋅ 20分钟前 ⋅ 0

阿里沙箱环境支付宝测试demo

阿里支付宝支付和微信支付,包括:阿里沙箱环境支付宝测试demo,支付宝支付整合到spring+springmvc+mybatis环境和微信整合到如上环境,功能非常齐全,只需要修改对应的配置文件即可,帮助文档...

码代码的小司机 ⋅ 23分钟前 ⋅ 0

JDK1.6和JDK1.7中,Collections.sort的区别,

背景 最近,项目正在集成测试阶段,项目在服务器上运行了一段时间,点击表格的列进行排序的时候,有的列排序正常,有的列在排序的时候,在后台会抛出如下异常,查询到不到数据,而且在另外一...

tsmyk0715 ⋅ 40分钟前 ⋅ 0

C++ 中命名空间的 5 个常见用法

相信小伙伴们对C++已经非常熟悉,但是对命名空间经常使用到的地方还不是很明白,这篇文章就针对命名空间这一块做了一个叙述。 命名空间在1995年被引入到 c++ 标准中,通常是这样定义的: 命名...

柳猫 ⋅ 44分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部