-
近来学习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服务