美文网首页
第十章:为镜像添加SSH服务

第十章:为镜像添加SSH服务

作者: xrichardyan | 来源:发表于2017-08-07 00:15 被阅读0次

10.1基于commit命令创建

命令格式为 docker commit CONTAINER [REPOSITORY[:TAG]]

1.准备工作

首先使用 ubuntu:16.04镜像来创建一个容器

$ docker run -it ubuntu:16.04 /bin/bash
root@962ddbdf1575:/# 

更新apt缓存,并安装 openssh-server:

root@962ddbdf1575:/# apt-get update ; apt-get install openssh-server -y

2.安装和配置SSH服务

选择主流的 openshh-server 作为服务端:

root@962ddbdf1575:/# apt-get install openssh-server -y

如果需要正常启动SSH服务,则目录 /var/run/sshd 必须存在。手动创建它,并启动服务:

root@962ddbdf1575:/# mkdir -p /var/run/sshd
root@962ddbdf1575:/# /usr/sbin/sshd -D &    # 启动SSH服务
[1] 3636

此时查看容器的22端口(SSH默认坚挺的端口),可见此端口已经处于监听状态:

root@962ddbdf1575:/# apt-get install net-tools    # 有些没有netstat功能,通过此命令安装
root@962ddbdf1575:/# netstat -tunlp
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      3636/sshd       
tcp6       0      0 :::22                   :::*                    LISTEN      3636/sshd       

修改SSH服务的安全登录配置,取消pam登录限制:

root@962ddbdf1575:/# sed -ri 's/session    required    pam_loginuid.so/#session required    pam_loginuid.so/g' /etc/pam.d/sshd

在root用户目录下创建 .ssh 目录,并复制需要登录的公钥信息(一般为本地主机目录下的 。ssh/id_rsa.pub 文件,可有ssh-keygen -t rsa 命令生成)到authorized_keys文件中:

root@962ddbdf1575:/# mkdir root/.ssh
root@962ddbdf1575:~/.ssh# vim authorized_key

创建自动启动SSH服务的可执行文件run.sh,并添加可执行权限:

root@962ddbdf1575:/# vi /run.sh
root@962ddbdf1575:/# chmod +x run.sh
root@962ddbdf1575:/# vim /run.sh    # 自行百度vim的使用命令

#!/bin/bash
/usr/sbin/sshd -D

:wq    # 保存并退出

root@962ddbdf1575:/# exit    #最后,退出容器
exit

3.保存镜像

讲所退出的容器用 docker commit 命令保存为一个新的 ubuntu:sshd 镜像:

$ docker commit 962ddbdf1575 ubuntu:sshd
sha256:3caead90f45bf7712f2306cbead056def6f33817328d803016b23d441e716146

使用 docker images 查看本地生成的新镜像 ubuntu:sshd :

docker images
REPOSITORY           TAG                 IMAGE ID            CREATED              SIZE
ubuntu               sshd                3caead90f45b        About a minute ago   251MB
ubuntu               16.04               14f60031763d        2 weeks ago          120MB
busybox              latest              efe10ee6727f        2 weeks ago          1.13MB
centos               latest              36540f359ca3        4 weeks ago          193MB

4.使用镜像

10.2使用Dockerfile创建

1.创建工作目录

2.编写run.sh脚本和authorized_keys文件

3.编写Dockerfile

4.创建镜像

5.测试镜像,运行容器

相关文章

网友评论

      本文标题:第十章:为镜像添加SSH服务

      本文链接:https://www.haomeiwen.com/subject/yoailxtx.html