docker中安装ssh服务
系统: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服务的更多相关文章
- docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目
docker微服务部署之:三,搭建Zuul微服务项目 1.Centos7安装Docker 详见:Centos7安装Docker 2.Docker中安装jdk1.8 详见:使用Docker构建jdk1. ...
- 在CentOS7.5上安装Docker,在Docker中拉取CentOS7.5镜像并安装SSH服务
# 安装docker yum install -y docker # 启动docker systemctl start docker # 加入开机启动 systemctl enable docker ...
- Docker中开启sshd服务
ssh服务安装 安装ssh服务 #yum install openssh-server -y 安装passwd(修改密码需要) #yum install passwd -y 修改sshd_config ...
- Docker创建支持ssh服务的容器和镜像
原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行 ...
- 为Docker镜像添加SSH服务
一.基于commit命令创建 1. 首先下载镜像 $ docker run -it ubuntu:16.04 /bin/bash 2. 安装SSH服务 #更新apt缓存 root@5ef1d31632 ...
- Docker 添加容器SSH服务
很多时候我们需要登陆到容器内部操作,此时我们就需要开启容器的SSH支持了,下面的小例子将具体介绍三种分配IP地址的方法,分别是pipworl分配,commit分配,Docker分配等. 基于commi ...
- 如何在ubuntu中启用SSH服务
如何在ubuntu14.04 中启用SSH服务 开篇科普: SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为 ...
- 使用Linux系统中的SSH服务
使用Linux系统中的SSH服务 1.SSH服务应用场景 ① 可以实现对文件的上传与下载 ② 实现远程管理Linux 2.安装SSH服务器 服 务:sshd 位 置:光盘2 软 件:openssh-s ...
- docker 容器开启ssh服务
ssh服务安装 安装ssh服务 #yum install openssh-server -y 安装passwd(修改密码需要) #yum install passwd -y 修改sshd_config ...
随机推荐
- HDU 1536 sg函数
S-Nim Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 20145113 实验二 Java面向对象程序设计
20145113 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 1.初 ...
- HDFS介绍
一.HDFS概述 1.HDFS设计思想来源于Google的GFS,是GFS的开源实现. 2.HDFS要解决的问题: -存储超大文件,比如TB级别 -防止文件丢失. 3.HDFS的特点 -可以存储超大文 ...
- LeetCode()Minimum Window Substring 超时,但觉得很清晰。
我的超时思路,感觉自己上了一个新的台阶,虽然超时了,但起码是给出了一个方法. 遍历s 一遍即可,两个指针,当找到了一个合格的字串后,start 开始走,直到遇到s[start]在t中 如果不符合,en ...
- 常见C内存管理程序
本文主要关注的是C内存管理程序,比较著名的几个C内存管理程序,其中包括: l Doug Lea Malloc:Doug Lea Malloc实际上是完整的一组分配程序,其中包括Doug Lea的原 ...
- Windows 10 error code 0x80072efd
访问windows 10 store出现如下图的错误: 如果你是宽带连接,删掉现在的连接,新建一个同样的宽带连接就OK了. 哎,这个问题导致我半个月没上去Windows Store,我还真以为微软有问 ...
- python+php+redis+shell实现几台redis的同步数据
之所以使用python,是因为python多线程非常简单. 之所以使用shell,是因为写了个服务,可以方便的重启python写的那个脚本. 总体思路:利用redis的发布订阅,php作为生产者,py ...
- android中的AIDL进程间通信
关于IPC应该不用多介绍了,Android系统中的进程之间不能共享内存,那么如果两个不同的应用程序之间需要通讯怎么办呢?比如公司的一个项目要更新,产品的需求是依附于当前项目开发一个插件,但是呢这个插件 ...
- 1、java中常用名字规范
包名:多个单词组成是所有单词字母小写. 类名.接口名:所有单词首字母大写. 变量名.函数名:多单词组成时第一个单词首字母小写,从第二个单词开始首字母大写. 常量名:所有字母大写,单词之间用 “_” 连 ...
- 5分钟实现VS2010整合NUnit进行单元测试
本文转载自:http://www.cnblogs.com/jeffwongishandsome/archive/2012/03/18/2404845.html 1.下载安装NUnit(最新win版本为 ...