Docker安装ssh,supervisor等基础工具

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Docker安装ssh,supervisor等基础工具

需要提前下载好官方的ubuntu镜像,我这里使用的是ubuntu:14.04版本,这里安装了一些基础的工具ssh,curl,wget,vim等等,包括后续的Docker镜像需要启动多个服务,所以提前先装好supervisor。

Dockerfile文件

############################################
# version : birdben/tools:v1
# desc : 当前版本安装的ssh,wget,curl,supervisor 
############################################
# 设置继承自ubuntu官方镜像
FROM ubuntu:14.04# 下面是一些创建者的基本信息
MAINTAINER birdben (191654006@163.com)# 注意这里要更改系统的时区设置,因为在 web 应用中经常会用到时区这个系统变量,默认的 ubuntu 会让你的应用程序发生不可思议的效果哦
ENV DEBIAN_FRONTEND noninteractive# 清空ubuntu更新包
RUN sudo rm -rf /var/lib/apt/lists/*# 一次性安装vim,wget,curl,ssh server等必备软件
# RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe"> /etc/apt/sources.list
RUN sudo apt-get update
RUN sudo apt-get install -y vim wget curl openssh-server sudo
RUN sudo mkdir -p /var/run/sshd# 将sshd的UsePAM参数设置成no
RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config# 添加测试用户admin,密码admin,并且将此用户添加到sudoers里
RUN useradd admin
RUN echo "admin:admin" | chpasswd
RUN echo "admin   ALL=(ALL)       ALL" >> /etc/sudoers# 把admin用户的shell改成bash,否则SSH登录Ubuntu服务器,命令行不显示用户名和目录 
RUN usermod -s /bin/bash admin# 安装supervisor工具
RUN sudo apt-get install -y supervisor
RUN sudo mkdir -p /var/log/supervisor# 添加 supervisord 的配置文件,并复制配置文件到对应目录下面。(supervisord.conf文件和Dockerfile文件在同一路径)
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf# 容器需要开放SSH 22端口
EXPOSE 22# 执行supervisord来同时执行多个命令,使用 supervisord 的可执行路径启动服务。
CMD ["/usr/bin/supervisord"]
  •  

Dockerfile源文件链接:

  • https://github.com/birdben/birdDocker/blob/master/tools/Dockerfile

supervisor配置文件内容

# 配置文件包含目录和进程
# 第一段 supervsord 配置软件本身,使用 nodaemon 参数来运行。
# 第二段包含要控制的 2 个服务。每一段包含一个服务的目录和启动这个服务的命令。[supervisord]
nodaemon=true[program:sshd]
command=/usr/sbin/sshd -D
  •  

supervisor源文件链接:

  • https://github.com/birdben/birdDocker/blob/master/tools/supervisord.conf

控制台终端

# 构建镜像
$ docker build -t="birdben/tools:v1" .
# 运行已经构件好的镜像,因为我使用的ubuntu虚拟机安装的Docker,而我的虚拟机也安装了ssh服务,所以这里指定了宿主机的端口为9999对应Docker容器的22端口
$ docker run -p 9999:22 -t -i "birdben/tools:v1"# 此时查看宿主机的9999端口,已经处于监听状态:
$ netstat -aunpt
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::9999                 :::*                    LISTEN      -               
tcp6       0      0 :::22                   :::*                    LISTEN      -   # 再查看一下宿主机的IP地址,我这里的IP地址是10.211.55.4
$ ifconfig# 此时可以通过ssh远程连接Docker容器了
$ ssh root@10.211.55.4 -p 9999
# 输入密码应该就可以连接到Docker容器了# 如果遇到下面的问题,这是Linux重装或则openssh-server重装引起的,执行以下命令即可
$ ssh-keygen -R 10.211.55.4# 如果上述方式不好用,进入此目录,删除的10.211.55.4相关rsa的信息即可
$ vi ~/.ssh/known_hosts@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
8c:4b:88:88:53:4a:b1:f0:e2:da:9a:dc:aa:67:46:df.
Please contact your system administrator.
Add correct host key in /Users/ben/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/ben/.ssh/known_hosts:18
RSA host key for [10.211.55.4]:9999 has changed and you have requested strict checking.
Host key verification failed.
  •  

遇到的问题和解决办法

Q:ssh登录后,命令行不显示用户名和目录
A:把用户的shell改成bash,否则SSH登录Ubuntu服务器,命令行不显示用户名和目录
RUN usermod -s /bin/bash admin参考:
http://bbs.csdn.net/topics/390188284Q:ssh创建admin登录用户,不使用root登录
A:这里使用ssh不建议直接使用root用户登录,建议创建一个新的用户例如admin登录
RUN useradd admin
RUN echo "admin:admin" | chpasswd
RUN echo "admin   ALL=(ALL)       ALL" >> /etc/sudoers参考:
http://blog.csdn.net/kongxx/article/details/38395305
http://blog.csdn.net/kongxx/article/details/38412119Q:如何修改ssh服务相关配置
A:可以直接修改sshd_config配置文件
vi /etc/ssh/sshd_config
需要修改如下# 设置不允许root用户登录
PermitRootLogin yes# 利用 PAM 管理使用者认证有很多好处,可以记录与管理。
# 所以这里我们建议你使用 UsePAM 且 ChallengeResponseAuthentication 设定为 no,但是我们这里为了简单设置为密码认证,ChallengeResponseAuthentication设定为yes,UsePAM设置为no
ChallengeResponseAuthentication yes
UsePAM no参考:
http://my.oschina.net/fsmwhx/blog/143354
http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646032.html

转载于:https://my.oschina.net/u/1442577/blog/829549

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx集群_windows环境下搭建简单Nginx+Tomcat集群

通俗点将,负载均衡就是因为访问流量太大,导致项目访问不流畅、甚至宕掉,所以通过一种分流的方式来缓解这种情况。一、 工具nginx-1.8.0apache-tomcat-6.0.33二、 目标实现高性能负载均衡的Tomcat集群:三、 步骤1、首先下载Nginx&a…

颜色传感器TCS230及颜色识别电路(转)

摘要 TCS230是美国TAOS公司生产的一种可编程彩色光到频率的传感器。该传感器具有分辨率高、可编程的颜色选择与输出定标、单电源供电等特点;输出为数字量,可直接与微处理器连接。文中主要介绍TCS230的原理和应用,以及色光和白平衡的知识&…

mysql命令行导入和导出数据

首先打开命令窗口,输入命令:mysql -h localhost -u selffabu -p 连接成功后,进行下面的操作 MySQL中导出CSV格式数据的SQL语句样本如下: Sql代码select * from test_info into outfile /tmp/test.csv fields terminated by , optionally enclosed by " esc…

7.组件连线(贝塞尔曲线)--从零起步实现基于Html5的WEB设计器Jquery插件(含源码)...

上节讲到如何创建组件,清除设计器视图,以及设计视图的持久化和恢复,本节将重点讲如何实现组件间的连线,前面章节有提到为了方便从持久化文件中恢复,组件和连线是分别存放的:nodes和lines对象,两…

定位排查工作流的计算结果数据量不符合预期的方法

近期有发现一些用户在咨询,为什么数据从数据源出来后,经过了一些计算,结果不符合预期了。最常见的是说,为什么我的数据在Mysql里有xx条,怎么到MaxCompute里算了下结果变了。因为这是两个不同的系统,我们又没…

canvas 插件_基于canvas的JavaScript 二维码生成工具——QRCanvas

介绍在我们日常的开发中,特别是在现代的社会环境下,二维码的应用可谓是丰富多彩,各种各样让人眼花缭乱的二维码,可见二维码已经渗透进我们生活的方方面面,也可以说目二维码确确实实方便了我们的生活。因为作为开发人员…

消息队列NetMQ 原理分析2-IO线程和完成端口

目录 前言介绍目的IO线程初始化IO线程Proactor启动Procator线程轮询处理socketIOObject总结前言 介绍 [NetMQ](https://github.com/zeromq/netmq.git)是ZeroMQ的C#移植版本,它是对标准socket接口的扩展。它提供了一种异步消息队列,多消息模式,消息过滤(订阅&#xf…

VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machine type。 无效的机器类型,真的是很让人捉急。 发生这个错误的原因是…

linux 内存泄漏 定位,一种内存泄露检查和定位的方法

一个系统后台服务进程,可能包括多个线程,在生成环境下要求系统程序能够稳定长时间稳定运行而不宕机。其中一个基本的前提就是需要保证系统程序不存在内存泄露。那么,该如何判读系统程序是否存在内存泄露呢?如果存在,又…

ifconfig命令找不到_02. Linux命令之查看网络连接

1. 查看网络连接数和端口使用 netstat 命令查看网络连接情况netstat -anp参数:-a 显示所有选项-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字。-p 显示建立相关链接的程序名关键列解释:Proto 表示协议…

python学习之模块(pip),列表生成式,模块操作mysql,excel

python基础 生成式 列表生成式  格式 [表达式 for 表达式 in 迭代对象 (可加判断)] 原: 1 res1 [] 2 for i in range(1,5): 3   res1.append(i) 4 print(res1) 改: 1 res2 [i for i in range(1,5)] 2 print(res2) 字典生成式  格式 {key:value f…

linux驱动read函数 copytouser,Linux驱动编程 step-by-step (五)主要的文件操作方法实现...

主要的文件操作方法实现文件操作函数有很多的操作接口,驱动编程需要实现这些接口,在用户编程时候系统调用时候会调用到这些操作structfile_operations {...loff_t (*llseek) (structfile *, loff_t,int);ssize_t (*read) (structfile *,char__user *,siz…

基于光线追踪的渲染中景深(Depth of field)效果的实现

图形学离线渲染中常用的透视摄像机模型时根据小孔成像的原理建立的,其实现通常是从向成像平面上发射ray,并把trace这条ray的结果作为成像平面上对应交点的采样结果。即: 图片来自《Fundamentals of Computer Graphics》 现实中的镜头拍摄的图…

带你制作百词斩单词表读写插件

上篇博文简单的介绍了一下Chrome插件,今天就与大家分享一下我做的这款有实际意义的插件吧。 做这款插件主要是用百词斩站点进行单词学习时,遇到的一点点闹心事儿。在单词表中不能听发音。也不能练习拼写。所以才忍无可忍的做了这么一款插件。自我感觉还是…

iphone各机型参数对比_带你了解新款iPhone 12系列四款机型

2020年10月14日凌晨1:00,苹果召开新品发布会,发布了新款iPhone 12系列手机,“果粉”们期待已久的iPhone 12终于来了。iPhone 12系列手机共有四款机型,分别是iPhone 12 mini、iPhone 12、iPhone 12 Pro、iPhone 12 Pro …

高并发第一弹:准备阶段 了解高并发

高并发第一弹:准备阶段 了解高并发 首先需要知道什么并发, 什么是高并发. 并发: 关于并发的学习,可以从JDK提供的并发包为核心开始,许多其他的类和封装都是对其进行扩展或者补充,我们来看一下Java并发包(java.util.concurrent包,简…

matlab立体坐标定位_【半导光电】基于光电探测器的激光章动定位算法(二)

今日光电有人说,20世纪是电的世纪,21世纪是光的世纪;知光解电,再小的个体都可以被赋能。欢迎来到今日光电!----与智者为伍 为创新赋能----1. 章动定位算法实验前,首先需要对光路进行调节,保证经…

Android:支持多选的本地相册

前段时间在做一个动态发布功能,需要用到图片上传。一开始直接调用的系统相册和相机,由于系统相机不支持多选,就花点时间做了个本地相册,在此开源下。 先上截图,依次为选择相册界面、相册详情界面、查看图片大图界面 相…

心灵与大脑

2019独角兽企业重金招聘Python工程师标准>>> http://blog.sina.com.cn/s/blog_6f034fc30102f2tg.html 转载于:https://my.oschina.net/chirnson/blog/832011

python入门心得_记初学python的一些心得

人生苦短,我用python! 其实我自学python也很长一段时间了,但总是去更换学习资料,搞的现在学的不是很好,因为没更换次资料都要从头开始学起,那么分享下我的学习战况吧,不是很好,还将就…