美文网首页
dockerfile自动构建docker镜像

dockerfile自动构建docker镜像

作者: zwb_jianshu | 来源:发表于2019-07-23 19:46 被阅读0次

    一、参数讲解

    dockerfile 常用格式
    FROM 选一个基础镜像
    RUN 安装软件,需要执行命令
    CMD 容器启动的时候,执行的初始命令
    
    dockerfile主要组成部分:
        基础镜像信息       FROM  centos:6.9
        制作镜像操作指令   RUN yum install openssh-server -y
        容器启动时执行指令 CMD ["/bin/bash"]
    dockerfile常用指令:
        FROM 这个镜像的妈妈是谁?(指定基础镜像)
        MAINTAINER 告诉别人,谁负责养它?(指定维护者信息,可以没有)
        LABLE      描述,标签
        RUN 你想让它干啥(在命令前面加上RUN即可)
        ADD 给它点创业资金(会自动解压tar)  制作docker基础的系统镜像
        WORKDIR 我是cd,今天刚化了妆(设置当前工作目录)
        VOLUME 给它一个存放行李的地方(设置卷,挂载主机目录)
        EXPOSE 它要打开的门是啥(指定对外的端口)(-P 随机端口)
        CMD 奔跑吧,兄弟!(指定容器启动后的要干的事情)(容易被替换)
    dockerfile其他指令: 
        COPY 复制文件(不会解压)rootfs.tar.gz
        ENV  环境变量
        ENTRYPOINT  容器启动后执行的命令(无法被替换,启容器的时候指定的命令,会被当成参数)
    参考其他的dockerfile
    官方dockerfile或者时速云镜像广场
    

    二、创建dockerfile文件
    1.dockerfile

    FROM centos:6.9
    RUN echo '192.168.12.201 mirrors.aliyun.com' >>/etc/hosts
    RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    RUN curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    RUN yum install openssh-server nginx -y
    RUN /etc/init.d/sshd restart
    RUN echo 123456|passwd --stdin root
    ADD init.sh  /init.sh
    CMD ["/bin/bash","/init.sh" ]
    

    2.init.sh

    #!/bin/bash
    service sshd restart
    service nginx restart
    #nginx -g "damen off;"
    tail -f /var/log/nginx/access.log
    

    三、构建docker镜像

    docker build --network=host -t centos6.9_ssh:v5 .
    

    四、创建端口映射

    docker run -d -p 2022:22 centos6.9_ssh:v5
    

    五、测试

    docker run -d -p 2022:22 centos6.9_ssh:v2  创建端口映射
    docker ps -a -l       查看容器的状态是否夯住
    ssh root@10.0.0.11 -p 2022     连接容器是否可以连上
    

    六、手动将容器保存为镜像

    docker commit 容器id或者容器的名字   新的镜像名字[:版本号可选]
    

    1):基于容器制作镜像

    docker run -it centos:6.9 
    yum install httpd
    yum install openssh-server
    /etc/init.d/sshd start
    
    vi /init.sh
    #!/bin/bash
    /etc/init.d/httpd start
    /usr/sbin/sshd -D
    chmod +x /init.sh
    

    2)将容器提交为镜像

    docker commit   zwb centos6-ssh-httpd:v1
    

    3)测试镜像功能是否可用

    手动制作的镜像,传输时间长
    镜像初始命令
    

    相关文章

      网友评论

          本文标题:dockerfile自动构建docker镜像

          本文链接:https://www.haomeiwen.com/subject/koaalctx.html