Centos6.5下使用docker创建centos6.5镜像文件,运行sshd+httpd

https://docs.docker.com/examples/running_ssh_service/  docker 的文档,关于如何搭建sshd的docker容器

http://stackoverflow.com/questions/18173889/cannot-access-centos-sshd-on-docker  根据上文生成的docker容器总是不能登录,试了这篇里的方法得到解决

 

安装docker

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

yum install –y docker-io

service docker start

创建Dockerfile 这是一个定制docker image的方法

 

# sshd
#
# VERSION               0.0.1
 
FROM        centos:6
MAINTAINER  yey
RUN         yum install -y openssh openssh-server httpd
RUN         echo 'root:mypwd' |chpasswd
RUN         sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN         sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
RUN         sed -ri 's/#UsePAM no/UsePAM no/g' /etc/ssh/sshd_config
RUN         ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN         ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
EXPOSE      22
EXPOSE      80
CMD         /usr/sbin/sshd –D

 

From centos:6 指定os版本
RUN xxx      运行命令
EXPOSE 22    这个不太熟悉,估计就是把22端口暴露给外面
CMD         这个跟上面的有什么区别? 也不是太明白

 

在有这个文件的目录里运行

docker build --rm -t yeyssh .

那么就会创建一个名为 yeyssh的image, 这个image创建过程中会执行上面那些动作

 

完成后 docker images得到具体信息

 

 使用docker run -d -p 22 -p 8000:80 yeyssh运行,然后 docker ps

 

 ssh试试

 

在ssh中启动httpd service,之后对8000的访问也OK

 

最后创建这个稳定版本的image保存修改(其实不用,上面已经创建好了)

docker commit 93346d9cd87a yeyssh_stable

 

 

docker images

docker info

docker ps

docker search

docker port

docker pull

docker run

docker build

docker kill

docker push

docker commit

posted on 2014-09-26 17:00  js.yeyong  阅读(995)  评论(0编辑  收藏  举报

导航