coreos 创建使用密钥登陆的ubuntu 基础镜像

下载官方镜像

core@localhost ~ $ docker pull ubuntu:14.04
#如果官方下载较慢,可到www.dockerpool.com下载标准镜像
core@localhost ~ $ docker pull dl.dockerpool.com:5000/ubuntu:14.04
core@localhost ~ $ docker tag dl.dockerpool.com:5000/ubuntu:14.04 ubuntu:14.04
core@localhost ~ $ docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
dl.dockerpool.com:5000/ubuntu   14.04               1357f421be38        3 days ago          192.7 MB
ubuntu                          14.04               1357f421be38        3 days ago          192.7 MB

创建dockerfile文件夹

core@localhost ~ $ mkdir base
core@localhost ~ $ cd base
core@localhost ~/base $~ $ ssh-keygen
#生成访问密钥
core@localhost ~/base $ cat ~/.ssh/id_rsa.pub >authorized_keys

dockerfile内容:

#设置母镜像
FROM ubuntu:14.04
#提供一些作者的信息
MAINTAINER [email protected]
#下面开始运行命令,此处更改ubuntu的源为国内163的源
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get upgrade -y

#安装ssh 和supervisor
RUN apt-get install -y openssh-server  supervisor
RUN mkdir -p /var/run/sshd
RUN mkdir -p /var/log/supervisor
RUN mkdir -p /root/.ssh
#取消pam限制
RUN sed -ri ‘s/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g‘ /etc/pam.d/sshd

#复制配置文件到相应位置
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY authorized_keys /root/.ssh/authorized_keys

#开放端口
EXPOSE 22
CMD ["/usr/bin/supervisord"]

创建supervisor.conf文件:

core@localhost ~/base $ vi supervisord.conf
#文件内容如下
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D

验证一下文件夹内容

core@localhost ~/base $ ls
Dockerfile  authorized_keys  supervisord.conf
core@localhost ~/base $ pwd
/home/core/base

创建image方法

core@localhost ~/base $ docker build -t base/163 .

启动容器命令

core@localhost ~/base $ docker run -p 100:22 -d base/163

使用密钥登陆容器

core@localhost ~/base $ ssh root@127.0.0.1 -p 100

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。