• Docker:dockerfile构建php项目 [八]


    一、把项目封装成docker镜像的步骤

    把项目封装成docker镜像的步骤:


    1、先运行一个基础容器,手动制作docker镜像

    2、编写dockerfile,构建镜像

    3、测试运行

    二、dockerfile常用指令参考

    1、dockerfile常用指令:

    FROM 这个镜像的妈妈是谁?(指定基础镜像)
    MAINTAINER 告诉别人,谁负责养它?(指定维护者信息,可以没有)
    RUN 你想让它干啥(在命令前面加上RUN即可)
    ADD 给它点创业资金(COPY文件,会自动解压)
    WORKDIR 我是cd,今天刚化了妆(设置当前工作目录)
    VOLUME 给它一个存放行李的地方(设置卷,挂载主机目录)
    EXPOSE 它要打开的门是啥(指定对外的端口)(-P 随机端口)
    CMD 奔跑吧,兄弟!(指定容器启动后的要干的事情)(容易被替换)

    2、dockerfile其他指令:

    COPY 复制文件
    ENV 环境变量
    ENTRYPOINT 容器启动后执行的命令(无法被替换,启容器的时候指定的命令,会被当成参数)

    三、可道云网盘kodexplorer项目

    1、项目环境

    项目:可道云网盘kodexplorer
    需要的环境:httpd+php或者nginx+php
    php所需模块:未知
    基础镜像:centos:6.9
    项目下载地址: http://static.kodcloud.com/update/download/kodexplorer4.37.zip
    项目官网:https://kodcloud.com/download/

    四、可道云网盘kodexplorer项目手动

    1、启动容器

    docker run -it -p 80:80 centos:6.9

    2、安装服务软件

    [root@f82cd0895416 html]# history 
      yum install httpd php php-cli unzip php-gd php-mbstring -y
      /etc/init.d/httpd start
      cd /var/www/html/
      curl -o kodexplorer4.37.zip http://static.kodcloud.com/update/download/kodexplorer4.37.zip
      unzip kodexplorer4.37.zip 
      chmod -R 777 /var/www/html/
      /etc/init.d/httpd restart

    3、提交镜像

    [root@luoahong kod]# docker commit luoahong centos6-ssh-http:v1

    4、测试镜像

    1、启动容器

    [root@luoahong kod]#docker run -d -p 80:80 centos6-ssh-http:v1  
    

    2、web界面截图

    五、可道云网盘kodexplorer项目自动

    1、编写dockerfile

    [root@luoahong kod]# pwd
    /opt/dockerfile/kod
    [root@luoahong kod]# tree
    .
    ├── dockerfile
    ├── init.sh
    └── kodexplorer4.37.zip
    
    0 directories, 3 files
    [root@luoahong kod]# ll
    total 13532
    -rw-r--r-- 1 root root      258 Jan 17 13:44 dockerfile
    -rw-r--r-- 1 root root       70 Jan 17 11:45 init.sh
    -rw-r--r-- 1 root root 13845184 Jan 17 11:45 kodexplorer4.37.zip
    [root@luoahong kod]# cat dockerfile
    FROM centos:6.9
    RUN  yum install httpd php php-cli unzip php-gd php-mbstring -y
    WORKDIR  /var/www/html
    COPY  kodexplorer4.37.zip .
    RUN   unzip kodexplorer4.37.zip
    RUN   chmod -R 777 /var/www/html
    ADD   init.sh /init.sh
    EXPOSE 80
    CMD ["/bin/bash","/init.sh"]
    [root@luoahong kod]# cat init.sh
    #!/bin/bash
    /etc/init.d/httpd start
    tail -F /var/log/httpd/access_log

    2、构建镜像

    [root@luoahong kod]#docker build -t kod:v1 .

    3、测试运行

    1、启动容器

    [root@luoahong kod]# docker run -d -P kod:v1
    f2e286474958ee74a06328fadc4a1839a09bb4fdb8ed1f66c649881b6cff5494
    [root@luoahong kod]# docker ps -a -l
    CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                   NAMES
    f2e286474958        kod:v1              "/bin/bash /init.sh"   12 seconds ago      Up 12 seconds       0.0.0.0:32768->80/tcp   sad_kilby
    [root@luoahong kod]# ip add
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:81:a7:80 brd ff:ff:ff:ff:ff:ff
        inet 192.168.228.133/24 brd 192.168.228.255 scope global dynamic eth0
           valid_lft 1480sec preferred_lft 1480sec
        inet6 fe80::20c:29ff:fe81:a780/64 scope link
           valid_lft forever preferred_lft forever
    3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
        link/ether 02:42:1b:26:a7:af brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
           valid_lft forever preferred_lft forever
        inet6 fe80::42:1bff:fe26:a7af/64 scope link
           valid_lft forever preferred_lft forever
    11: veth8674b65@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP
        link/ether 5a:90:13:a4:70:28 brd ff:ff:ff:ff:ff:ff link-netnsid 0
        inet6 fe80::5890:13ff:fea4:7028/64 scope link

    2、登录测试

    3、桌面截图

  • 相关阅读:
    epoll源码实现分析[整理]
    linux几种时间函数总结
    linux几种定时函数的使用
    linux下redis数据库的简单使用
    网络编程之非阻塞connect编写
    网络编程之select
    数码相框(LCD、I2C)
    centos tftp和samba的安装与配置
    libevent库简单使用
    c语言随机数
  • 原文地址:https://www.cnblogs.com/luoahong/p/10281546.html
Copyright © 2020-2023  润新知