一般,Linux系统管理员是通过SSH服务管理操作系统的,但Docker的很多镜像都不带SSH服务。

基于commit命令构建

准备ubuntu:14.04镜像容器

docker run -it ubuntu:14.04 /bin/bash

查看是否存在SSHD服务

[email protected]:/# sshd

配置国内源

[email protected]:/# vi /etc/apt/sources.list.d/163.list

[email protected]:/# apt-get update

安装SSH服务

[email protected]:/# apt-get install openssh-server

要正常启动SSH服务,需要目录/var/run/sshd 存在

[email protected]:/# mkdir -p /var/run/sshd
[email protected]:/# /usr/sbin/sshd -D &

查看容器的22端口

[email protected]:/# netstat -antp | grep 22

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

[email protected]:/# sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd

在root用户创建.ssh目录,并复制需要登录的公钥信息到authorized_keys

[email protected]:/# mkdir root/.ssh
[email protected]:/# vi /root/.ssh/authorized_keys

创建自启动SSH服务的执行文件run.sh

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

提交镜像

docker commit fc1 sshd:ubuntu 7ae

results matching ""

    No results matching ""