制作docker版本的轻量级centos虚拟机

扶醉桌前 提交于 2020-01-26 01:28:41

原材料

docker-engine,最方便是docker desktop
文本编辑器

编写Dockerfile

基于centos 7 的mini镜像。

Dockerfile里使用腾讯云的centos源。
注释掉的那行是阿里的源,比腾讯源多出来的命令是过滤掉公网不能解析的mirros.cloud.aliyuncs.com

所谓的轻量级虚拟机,主要是多一个openssh-server,这样可以在docker外通过ssh登陆。

FROM centos:7
RUN rm -f /etc/yum.repos.d/*.repo
RUN curl -s -o  /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
#RUN curl -s -o -  http://mirrors.aliyun.com/repo/Centos-7.repo|grep -v mirrors.cloud.aliyuncs.com >/etc/yum.repos.d/CentOS-Base.repo
RUN yum clean all
RUN yum install -y  openssh-server
RUN yum clean all
RUN ssh-keygen -A
RUN echo develpassword|passwd --stdin root
ENTRYPOINT ["/bin/bash","-c","/usr/sbin/sshd && tail -f /dev/null"]
EXPOSE 22

镜像打包

在windows下和linux下的命令都差不多
推荐使用docker自己的中国区镜像https://registry.docker-cn.com

把上面的代码保存成文件,命名可以是dockerfile,或者其他喜欢的名字

$ docker  build  -f dockerfile -t osbase:1  ./

命令里的-t参数是指定打包出来的镜像名,冒号是分隔符,一般前面是镜像本身的名字,后面是数字版本命名。如果不加冒号,docker会自动在后面加一个latest后缀

使用镜像

可以单独执行下面这个命令

$ docker run -d -p 2222:22 osbase:1

这样启动后会在本机2222端口打开一个到docker容器内的ssh server代理,用一般的ssh客户端登陆进去后,登陆root用户的密码就是前面dockerfile里写的develpassword, 然后就和普通虚拟机一样可以安装软件,配置环境了。

但也有一些操作是做不了的,主要是和内核权限有关的部分,比较这只是个容器,不是全功能虚拟机。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!