• 近来学习docker的使用部署,在现有的群晖上使用docker功能,想在外面用ssh远程连接进docker,但是发现了几个问题,如连接IP和ssh服务等,故作此记

  • 本记录默认系统中已拉取到centos的镜像,遂不做前期操作


1.确保系统中已有centos

# docker images |grep centos

这里写图片描述

2.用该镜像启动容器

启动docker并将容器的22端口映射到主机10000端口上(方便后面ssh连接)

# docker run -it -p 10000:22 registry.cn-shanghai.aliyuncs.com/sa_dockerhub/centos:centos7.4.1708

这里写图片描述
至此进入到容器内部
我们的目的是能够用远程终端连接到此容器,所以先查看容器所分配到的ip

# ifconfig -a

这里写图片描述
发现ifconfig 命令找不到,那就先安装这部分依赖

2.1安装net-tools

# yum search ifconfig

这里写图片描述

# yum install -y  net-tools.x86_64 

这里写图片描述

# ifconfig -a 

再次查看网络信息可以看到如下
这里写图片描述

为了远程能够ssh连接进来,我们需要安装ssh服务centos的docker默认没有安装

# ps -ef | grep ssh 

发现后台没有ssh服务,于是尝试启动,发现服务未安装

# service sshd start

这里写图片描述
此处安装ssh服务(截图省略)

# yum install passwd openssl openssh-server -y

尝试启动ssh

# /usr/sbin/sshd -D

发现如下错误
这里写图片描述

依次执行如下命令

# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
# /usr/sbin/sshd -D&
# echo "/usr/sbin/sshd -D" >> /etc/rc.local

最后利用passwd 命令更改root密码,至此可以愉快的ssh了

这里写图片描述

最后提交修改

root@U:~# docker ps -all
CONTAINER ID        IMAGE                                                                  COMMAND             CREATED             STATUS                      PORTS               NAMES
095e325cd626        registry.cn-shanghai.aliyuncs.com/sa_dockerhub/centos:centos7.4.1708   "/bin/bash"         About an hour ago   Exited (0) 10 seconds ago                       test1

本文若有不足还请多多指正,欢迎讨论.
文章参考
docker中centos7安装ssh服务

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐