Docker为镜像添加SSH服务

本教程基于commit命令创建

1 准备工作

使用ubuntu:14.04镜像创建一个容器

docker run -it ubuntu:14.04 /bin/bash

2 安装和配置SSH服务

在容器中更新apt缓存,安装openssh-server

apt-get update;
apt-get install openssh-server -y;

创建目录/var/run/sshd 并启动SHH服务

mkdir -p /var/run/sshd
/usr/sbin/sshd -D

contrl+c

输入netstat -tunlp命令查看端口22是否已经处于监听状态

修改SSH服务的安全登录配置,取消pam登录限制:

sed -r 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd

在root用户目录下创建.ssh目录,并复制需要登录的公钥信息(一般为本地主机用户目录下的.ssh/id_rsa.pub文件)到authorized_keys文件中

mkdir root/.ssh
vi /root/.ssh/authorized_keys

创建自动启动SSH服务的可执行文件run.sh ,并添加可执行权限

其中 run.sh文件内容如下 

#! /bin/bash
/usr/sbin/sshd -D

vi /run.sh
chmod +x run.sh

输入exit两次 退出容器

3 保存镜像

将退出的容器用docker commit 命令保存为一个新的ssh:ubuntu镜像

其中2bf是退出的容器ID的前三位

docker commit 2bf sshd:ubuntu

使用docker images查看本地生成的新镜像sshd:ubuntu

4 使用镜像

启动容器 并添加端口映射10022 -->22,其中10022是宿主主机的端口,22是容器的SSH服务监听端口

docker run -p 10022:22 -d sshd:ubuntu /run.sh

启动成功后,可以在宿主主机上可到容器运行的详细信息

确保宿主主机对外端口10022对外防火墙已经打开

在宿主主机(47.98.218.29 )或其他主机上可以通过SSH访问10022端口

ssh 47.98.218.29 -p 10022

 

转载于:https://my.oschina.net/lilugirl2005/blog/1828934

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值