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、桌面截圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM