设为首页 收藏本站
查看: 923|回复: 0

[经验分享] Docker 定制ssh、java等基础服务镜像

[复制链接]

尚未签到

发表于 2018-5-28 08:33:27 | 显示全部楼层 |阅读模式
  1、启动一个基于centos镜像的容器
# docker run –p 10022:22  -ti centos bash
[root@f743588bbeef
/]#

  -p: 本地端口映射容器22端口,是为了后面启动ssh后测试能否正常登陆
  2、在容器中安装openssh-server、java等

[root@f743588bbeef /]# yum install -y -q openssh-server java-1.7.0-openjdk net-tools

  3、修改sshd_config配置文件

[root@f743588bbeef /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
[root@f743588bbeef
/]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[root@f743588bbeef
/]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key  -N ''  
[root@f743588bbeef
/]# sed -i "s/UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
[root@f743588bbeef
/]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

  4、修改root密码

[root@f743588bbeef /]# echo 'root:root' |chpasswd

  5、启动openssh服务

[root@f743588bbeef /]# /usr/sbin/sshd
[root@f743588bbeef
/]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv
-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        
0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1/sshd              
tcp6      
0      0 :::22

  6、测试是否能登陆容器

# ssh -p 10022 192.168.62.200
The authenticity of host
'[192.168.62.200]:10022 ([192.168.62.200]:10022)' can't be established.
ECDSA key fingerprint is 7d:d5:8a:ea:5a:92:9e:3d:92:fe:dd:78:56:c2:d9:0e.
Are you sure you want to continue connecting (yes
/no)? yes
Warning: Permanently added
'[192.168.62.200]:10022' (ECDSA) to the list of known hosts.
root@
192.168.62.200's password:
[root@f743588bbeef ~]#

  7、使用commit提交刚刚在容器内的所有操作

# docker commit f743588bbeef docker-ssh
sha256:4d8d27a47d3fd2750cde8f5d0ead3af6f90dd972969a3dca369b52d1e6130085
# docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
docker
-ssh                          latest              4d8d27a47d3f        7 seconds ago       192 MB

  8、可以看到镜像列表中存在一个docker-ssh的镜像

# docker run -d --name docker-ssh -p 10022:22 docker-ssh
d986e0bdc2b1072b39248a691ba73f6b297842373ca7a55457f3cd8d7fa5c435
# docker
ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS                      PORTS                                            NAMES
d986e0bdc2b1        docker
-ssh                 "/usr/sbin/sshd -D"      3 seconds ago       Up 3 seconds                0.0.0.0:10022->22/tcp                            docker-ssh
#
ssh -p 10022 192.168.62.200
The authenticity of host
'[192.168.62.200]:10022 ([192.168.62.200]:10022)' can't be established.
ECDSA key fingerprint is 7d:d5:8a:ea:5a:92:9e:3d:92:fe:dd:78:56:c2:d9:0e.
Are you sure you want to continue connecting (yes
/no)? yes
Warning: Permanently added
'[192.168.62.200]:10022' (ECDSA) to the list of known hosts.
root@
192.168.62.200's password:
[root@d986e0bdc2b1 ~]#

  二、用Dockerfile来定制
  mkdir ssh-java   ##创建一个空目录
  cd ssh-java && vim Dockerfile

FROM centos
MAINTAINER
<Email:kbsonlong@gmail.com Blog:www.along.party>
RUN
yum install -y -q openssh-server java-1.7.0-openjdk net-tools
RUN
ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
RUN
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key  -N ''  
RUN
sed -i &quot;s/UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g&quot; /etc/ssh/sshd_config
RUN
sed -i &quot;s/UsePAM.*/UsePAM no/g&quot; /etc/ssh/sshd_config  
RUN
echo 'root:change' |chpasswd
EXPOSE
22
CMD [
&quot;/usr/sbin/sshd&quot;, &quot;-D&quot;]

  FROM、RUN、EXPOSE、CMD、MAINTAINER 都是Dockerfile的指令,Dockerfile指令更多详细介绍
  FROM:指定基于哪个基础镜像
  MAINTAINER : 维护者的信息
  RUN: 在shell终端执行的命令
  EXPOSE: 对外提供的端口
  CMD: 启动容器是执行的命令,每个Dockerfile只能有一条CMD指令,如果存在多条,则执行最后一条。
  构建镜像

#docker build -t ssh-java:1.7.1  .

  查看构建的镜像

docker images|grep ssh-java
ssh-java                            1.7.1               71fc498380f5        25 minutes ago      282 MB

  使用镜像启动

# docker ps -a
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS                      PORTS                                            NAMES
26b4dcc00246        
ssh-java:1.7.1                 &quot;/usr/sbin/sshd -D&quot;      3 seconds ago       Up 2 seconds                0.0.0.0:32778->22/tcp                            ssh-java


# ssh -p 32778 192.168.62.200
The authenticity of host
'[192.168.62.200]:32778 ([192.168.62.200]:32778)' can't be established.
ECDSA key fingerprint is 7d:d5:8a:ea:5a:92:9e:3d:92:fe:dd:78:56:c2:d9:0e.
Are you sure you want to continue connecting (yes
/no)? yes
Warning: Permanently added
'[192.168.62.200]:32778' (ECDSA) to the list of known hosts.
root@
192.168.62.200's password:
[root@26b4dcc00246 ~]#

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481980-1-1.html 上篇帖子: docker—适用于中小企业的生产、测试、开发环境 下篇帖子: 利用Docker开启持续交付之路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表