原材料
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, 然后就和普通虚拟机一样可以安装软件,配置环境了。
但也有一些操作是做不了的,主要是和内核权限有关的部分,比较这只是个容器,不是全功能虚拟机。
来源:CSDN
作者:傲慢程序员
链接:https://blog.csdn.net/bigdataolddriver/article/details/103832433