把項目封裝成docker鏡像的步驟:php
一、先運行一個基礎容器,手動製做docker鏡像html
二、編寫dockerfile,構建鏡像nginx
三、測試運行web
FROM 這個鏡像的媽媽是誰?(指定基礎鏡像) MAINTAINER 告訴別人,誰負責養它?(指定維護者信息,能夠沒有) RUN 你想讓它幹啥(在命令前面加上RUN便可) ADD 給它點創業資金(COPY文件,會自動解壓) WORKDIR 我是cd,今天剛化了妝(設置當前工做目錄) VOLUME 給它一個存放行李的地方(設置卷,掛載主機目錄) EXPOSE 它要打開的門是啥(指定對外的端口)(-P 隨機端口) CMD 奔跑吧,兄弟!(指定容器啓動後的要乾的事情)(容易被替換)
COPY 複製文件
ENV 環境變量
ENTRYPOINT 容器啓動後執行的命令(沒法被替換,啓容器的時候指定的命令,會被當成參數)docker
項目:可道雲網盤kodexplorer
須要的環境:httpd+php或者nginx+php
php所需模塊:未知
基礎鏡像:centos:6.9
項目下載地址: http://static.kodcloud.com/update/download/kodexplorer4.37.zip
項目官網:https://kodcloud.com/download/centos
docker run -it -p 80:80 centos:6.9
[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
[root@luoahong kod]# docker commit luoahong centos6-ssh-http:v1
一、啓動容器bash
[root@luoahong kod]#docker run -d -p 80:80 centos6-ssh-http:v1
二、web界面截圖ssh
[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
[root@luoahong kod]#docker build -t kod:v1 .
[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