系统: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. WCF终结点配置

    错误信息:已有针对 IP 终结点 127.0.0.1:8235 的侦听器.如果有其他应用程序已在侦听此终结点,或者,如果在服务主机中具有多个服务终结点,这些终结点具有相同的 IP 终结点但绑定配置不兼 ...

  2. 图片标签img中,为什么使用alt属性没用

    alt属性 alt属性是为了给那些不能看到你文档中图像的浏览者提供文字说明的.所以alt属性的本意是用于替换图像,而不是为图像提供额外说明的,但是,在ie浏览器中,alt属性会变成文字提示,这本身是一 ...

  3. js 获取浏览器可视窗口大小,滚动条高度

    // 获取窗口宽度 if (window.innerWidth) winWidth = window.innerWidth; else if ((document.body) && ( ...

  4. JS URL参数传递 谷歌乱码解决

    //第一个页面 var name=encodeURIComponent("参数"); var url="test1.html?name="+name; //第二 ...

  5. 【 D3.js 入门系列 --- 2.1 】 关于如何选择,插入,删除元素

    在D3.js中,选择元素的函数有两个:select 和 selectAll . 先说明一下它们的区别: select 是选择所有指定元素的第一个 selectAll 是选择指定元素的全部(以用于后面同 ...

  6. c++new/delete---9

    原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/   C++new和delete实现原理 new 与delete是C++预定的操作符,它们一般需要配套使用 ...

  7. MFC各种控件的常见操作(逐步添加中......)

    由于经常切换系统或界面框架进行编程,难免有时会忘记之前的编程函数等等.所有在此自己做一个备份,以防止重新充电带来的痛苦! 1.CButton 1.1 在VC中编程实现按钮的启用(enable)和禁用( ...

  8. aptitude解决Ubuntu各种依赖问题

    转自:http://allog.ml/linux/aptitude%E8%A7%A3%E5%86%B3ubuntu%E5%90%84%E7%A7%8D%E4%BE%9D%E8%B5%96%E9%97% ...

  9. Pycharm 使用配置

    配置一下Pycharm吧,不然用着头疼 常用设置: 1. pycharm默认是自动保存的,习惯自己按ctrl + s 的可以进行如下设置: 1). file -> Setting -> G ...

  10. 家有学霸的CEO

    小余老师说 http://learning.sohu.com/20161101/n471998591.shtml