前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker为镜像添加SSH服务

Docker为镜像添加SSH服务

作者头像
lilugirl
发布2019-05-26 15:11:31
1.7K0
发布2019-05-26 15:11:31
举报
文章被收录于专栏:前端导学前端导学

本教程基于commit命令创建

1 准备工作

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

代码语言:javascript
复制
docker run -it ubuntu:14.04 /bin/bash

2 安装和配置SSH服务

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

代码语言:javascript
复制
apt-get update;
apt-get install openssh-server -y;

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

代码语言:javascript
复制
mkdir -p /var/run/sshd
/usr/sbin/sshd -D

contrl+c

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

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

代码语言:javascript
复制
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文件中

代码语言:javascript
复制
mkdir root/.ssh
vi /root/.ssh/authorized_keys

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

其中 run.sh文件内容如下

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

代码语言:javascript
复制
vi /run.sh
chmod +x run.sh

输入exit两次 退出容器

3 保存镜像

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

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

代码语言:javascript
复制
docker commit 2bf sshd:ubuntu

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

4 使用镜像

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

代码语言:javascript
复制
docker run -p 10022:22 -d sshd:ubuntu /run.sh

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

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

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

代码语言:javascript
复制
ssh 47.98.218.29 -p 10022
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 准备工作
  • 2 安装和配置SSH服务
  • 3 保存镜像
  • 4 使用镜像
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档