centos 实现ssh远程连接docker

转载地址:https://my.oschina.net/jywm/blog/754123

一、查看当前镜像

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

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

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

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

# docker run -it --name base_centos centos:latest /bin/bash
[root@cf6b692adf02 /] 2.2 安装net-tools,iproute

net-tools 可以使用ifconfig等命令

# yum install -y net-tools

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

# yum install -y iproute

3、sshd安装,及配置

3.1 安装openssh

# yum install -y openssh
[root# yum install -y openssh-server
[root# 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+| | .*+.| +-----------------+
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
Generating private ecdsa key pair.
Enter in /etc/ssh/ssh_host_ecdsa_key. Your 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 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进程,发现是启动的。

#ps -a | grep sshd
[root@cf6b692adf02 /]# /usr/sbin/sshd
[root@cf6b692adf02 /]# ps -ef | grep sshd
root       109     1  0 13:16 ?        00:00 /usr/sbin/sshd
root       128     22 ?        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 安装配置

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

[root#mv jdk-8u101-linux-x64.rpm?AuthParam=1475328855_221393517c76253d935635ef2ec114d1 jdk.rpm
[root#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# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13,mixed mode)
[root jdk rpm安装在/usr/java/jdk1.8.0_101/jre/bin/java

5、写脚本启动关闭tomcat

5.1 安装vim

@cf6b692adf02 tomcat]# yum install vim* -y

五、

5.1 创建新的镜像文件

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

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

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

# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
base                latest              a90294e9b9b5        2 minutes ago       934.9 MB
docker.io/centos    latest               5.2创建tomcat_cl 容器,并设置其ssh对于宿主机器的10022端口,8080端口对应宿主机器的10088端口

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

[root@iZ25av9xi4hZ ~]# ssh root@127.0.0.1 -p 10022
The authenticity of host '[0.1]:10022 ([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 '[10022' (ECDSA) to the list of kNown hosts. root@0.1's password:
Permission denied,please try again.

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

# 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 ,可以正常进入

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

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

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

@iZ25av9xi4hZ ~]127.0.0.1 -p 10022
root@.1's password: [root@e21a8af9269c ~]# ps -ef | grep java root 178 162 14:52 pts/00 grep --color=auto java [root@e21a8af9269c ~]# /app/apache-tomcat-cl/bin/startup.sh Using CATALINA_BASE: /app/apache-tomcat-cl CATALINA_HOME: /app/apache-tomcat-cl CATALINA_TMPDIR: /app/apache-tomcat-cl/temp JRE_HOME: /usr CLAsspATH: /app/apache-tomcat-cl/bin/bootstrap.jar:/app/apache-tomcat-cl/bin/tomcat-juli.jar Tomcat started. [root193 1 56 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 @e21a8af9269c ~]#

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

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native