系统:Debian Docker

目标:在docker(debian系统)中安装ssh服务,实现远程登陆和控制docker

步骤:

初始状态:通过docker pull debian得到的一个debian的docker

1,docker run -i -t debian /bin/bash 登录到docker的shell界面,方便之后的操作

2,apt-get update: docker默认root登录,apt-get install 几乎不能用,因为需要更新一下源(可能是为了更轻量)

3,apt-get install openssh-server 安装openssh(安装 vim等一切需要又没有的软件)

4,更改/etc/ssh/sshd_config配置:PermitRootLogin withoutr-passwd 更改为 PermitRootLogin yes(需要root登录,一般docker都用root登录,否则有点麻烦,当然也可以不配置,这样必须新建一个普通用户用来登录)

                 UsePAM yes 更改为 UsePAM no (因为linux系统默认是使用pam管理登录的,使用ssh的配置更为方便)

5,创建密码:passwd命令创建密码

6,service ssh start 启动ssh服务进行验证:重新开启一个shell,通过ssh命令连接docker看看是否成功(ssh root@ip,这里的ip可以在docker里面使用ip addr命令查询;或者,在安装docker的Linux系统上使用docker inspect | grep IP 查询)。是,进行下面一步;否,查看问题原因。

7,exit 退出(或者在原linux机器里面使用docker stop CONTAINER_ID)

8,创建新的镜像:可以当做把这一步当做保存所有的设置,使用命令docker commit CONTAINER_ID debian/ssh创建镜像

9,用刚保存的镜像,后台启动一个新的容器:docker run -d debian/ssh /etc/init.d/ssh start -D 或者 docker run -d debian/ssh /usr/sbin/sshd -D

(解释一下:-d表示希望container在后台启动;-D表示希望ssh不要以守护进程启动,这样做的目的是保证container不退出)

  --------------> -d参数解释

    -----------> -D参数解释

10,ssh root@ip进行远程登录

思考与改进:

1,每次需要知道container的ip才能进行登录有些麻烦,可以对容器进行端口映射,命令行

docker run -d -p 50001:22 debian/ssh /usr/sbin/sshd -D

启动之后直接 ssh root@localhost -p 50001 就可以登录了

2,配置无密码登录

docker中安装ssh服务的更多相关文章

  1. docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目

    docker微服务部署之:三,搭建Zuul微服务项目 1.Centos7安装Docker 详见:Centos7安装Docker 2.Docker中安装jdk1.8 详见:使用Docker构建jdk1. ...

  2. 在CentOS7.5上安装Docker,在Docker中拉取CentOS7.5镜像并安装SSH服务

    # 安装docker yum install -y docker # 启动docker systemctl start docker # 加入开机启动 systemctl enable docker ...

  3. Docker中开启sshd服务

    ssh服务安装 安装ssh服务 #yum install openssh-server -y 安装passwd(修改密码需要) #yum install passwd -y 修改sshd_config ...

  4. Docker创建支持ssh服务的容器和镜像

    原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...

  5. 为Docker镜像添加SSH服务

    一.基于commit命令创建 1. 首先下载镜像 $ docker run -it ubuntu:16.04 /bin/bash 2. 安装SSH服务 #更新apt缓存 root@5ef1d31632 ...

  6. Docker 添加容器SSH服务

    很多时候我们需要登陆到容器内部操作,此时我们就需要开启容器的SSH支持了,下面的小例子将具体介绍三种分配IP地址的方法,分别是pipworl分配,commit分配,Docker分配等. 基于commi ...

  7. 如何在ubuntu中启用SSH服务

    如何在ubuntu14.04 中启用SSH服务 开篇科普:  SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为 ...

  8. 使用Linux系统中的SSH服务

    使用Linux系统中的SSH服务 1.SSH服务应用场景 ① 可以实现对文件的上传与下载 ② 实现远程管理Linux 2.安装SSH服务器 服 务:sshd 位 置:光盘2 软 件:openssh-s ...

  9. docker 容器开启ssh服务

    ssh服务安装 安装ssh服务 #yum install openssh-server -y 安装passwd(修改密码需要) #yum install passwd -y 修改sshd_config ...

随机推荐

  1. [转]http://lua-users.org/wiki/LpegTutorial

    Simple Matching LPeg is a powerful notation for matching text data, which is more capable than Lua s ...

  2. viewPager动态加载listview数据

    废话不多说,先上效果图.(代码见附件) 代码是修改自某大神的,我做了很多修改,之前只能向右滑动,现在可以左右无限滑动,只要数据没加载完就可以一直滑动.过程不算复杂,代码主要的地方都有注释. 附件dem ...

  3. 腾讯优测-优社区干货精选 |  那些年,我们在Android机型适配上遇到的坑之Camera拍照时快门咔嚓声

    文/腾讯优测研发工程师 吴宇焕 优测小优有话说: android机型适配的坑自然是不少,不想掉坑快来优测优社区~ 现在Android手机一般都会带有照相功能,有很多朋友就发现手机照相时快门声音很响,想 ...

  4. centos添加PATH环境变量

    1.cd ~ 2.vi .bashrc 3.在代码末尾增加一行: export PATH =/path/to/target-dir/bin:$PATH 4.source .bash_profile立即 ...

  5. Codeforces Round #165 (Div. 2)

    C. Magical Boxes 问题相当于求\[2^p \gt \max{a_i \cdot 2^{k_i}},p \gt k_i\] D. Greenhouse Effect \(dp(i,j)\ ...

  6. 《JavaScript面向对象编程指南》译者序

    相对于Perl.Python等动态脚本语言来说,JavaScript确实是一门饱受误解的语言.对于译者这种从20世纪90年代末走过来的C++程序员来说,尤其如此.在那个年代,提起JavaScript总 ...

  7. 21副GIF动图让你了解各种数学概念

    baidu 21副GIF动图让你了解各种数学概念

  8. JsonResult序列化并保存json文件 以及对json文件读取反序列

    项目中我们经常遇到一些经常访问的接口,并且更新及时度不是特别高,那么我们可以利用文件来做一些数据请求的缓存. 这里以微信公众号获取粉丝用户列表为例,我们把微信公众号查到的用户先缓存在文件中,这样在翻页 ...

  9. 无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限。 已将数据库上下文更改为

    右键删除发布时报错信息: 其他信息:执行 Transact-SQL 语句或批处理时发生了异常. (Microsoft.SqlServer.ConnectionInfo)——————————无法作为数据 ...

  10. 少见的sql

    1,values 的新用法,出现自2008 SELECT * FROM table AS a ,,,'qq3')) tem(id,name) ON a.id=tem.id insert into xx ...