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