Docker-学习笔记-ctf_xinded

因为出题目的原因,接受题目的人说要我提供dockerfile。。可是我这样的小白怎么会,只能是现学现卖一波了。
在github上有个开源的dockerfile针对pwn题部署的这里对其进行一个解读

项目中的文件就是大概这几个

dockerfile学习

FROM ubuntu:16.04 #需要的镜像文件的系统

RUN sed -i "s/http:\/\/archive.ubuntu.com/http:\/\/mirrors.tuna.tsinghua.edu.cn/g" /etc/apt/sources.list && \
    apt-get update && apt-get -y dist-upgrade && \
    apt-get install -y lib32z1 xinetd #安装一些库文件

RUN useradd -m ctf #添加用户其中run是进行命令的运行

WORKDIR /home/ctf #work文件夹

RUN cp -R /lib* /home/ctf && \
    cp -R /usr/lib* /home/ctf #把一些库文件进行copy
    
#创建目录
RUN mkdir /home/ctf/dev && \
    mknod /home/ctf/dev/null c 1 3 && \
    mknod /home/ctf/dev/zero c 1 5 && \
    mknod /home/ctf/dev/random c 1 8 && \
    mknod /home/ctf/dev/urandom c 1 9 && \
    chmod 666 /home/ctf/dev/*
#常用的命令行文件
RUN mkdir /home/ctf/bin && \
    cp /bin/sh /home/ctf/bin && \
    cp /bin/ls /home/ctf/bin && \
    cp /bin/cat /home/ctf/bin

COPY ./ctf.xinetd /etc/xinetd.d/ctf
COPY ./start.sh /start.sh
RUN echo "Blocked by ctf_xinetd" > /etc/banner_fail

RUN chmod +x /start.sh
#复制题目以及flag并设置权限
COPY ./bin/ /home/ctf/
RUN chown -R root:ctf /home/ctf && \
    chmod -R 750 /home/ctf && \
    chmod 740 /home/ctf/flag
#启动程序
CMD ["/start.sh"]
#设置暴露端口
EXPOSE 9999

其他文件大概讲解

这里我们只需要把二进制文件放入bin中就可以了。

关于dokcer我个人理解其实是一种轻量的虚拟机,就像是我们的程序有时候需要箱子装但每次都用箱子装太浪费了。所以我们可以用被子或者其他小的容器来装这样小的轻量级的程序。

2019.2.1记录

你可能感兴趣的:(docker学习)