一、把项目封装成docker镜像的步骤
把项目封装成docker镜像的步骤:
1、先运行一个基础容器,手动制作docker镜像
2、编写dockerfile,构建镜像
3、测试运行
二、dockerfile常用指令参考
1、dockerfile常用指令:
1FROM 这个镜像的妈妈是谁?(指定基础镜像) 2MAINTAINER 告诉别人,谁负责养它?(指定维护者信息,可以没有) 3RUN 你想让它干啥(在命令前面加上RUN即可) 4ADD 给它点创业资金(COPY文件,会自动解压) 5WORKDIR 我是cd,今天刚化了妆(设置当前工作目录) 6VOLUME 给它一个存放行李的地方(设置卷,挂载主机目录) 7EXPOSE 它要打开的门是啥(指定对外的端口)(-P 随机端口) 8CMD 奔跑吧,兄弟!(指定容器启动后的要干的事情)(容易被替换)
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、安装服务软件
1[root@f82cd0895416 html]# history 2 yum install httpd php php-cli unzip php-gd php-mbstring -y 3 /etc/init.d/httpd start 4 cd /var/www/html/ 5 curl -o kodexplorer4.37.zip http://static.kodcloud.com/update/download/kodexplorer4.37.zip 6 unzip kodexplorer4.37.zip 7 chmod -R 777 /var/www/html/ 8 /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
1[root@luoahong kod]# pwd 2/opt/dockerfile/kod 3[root@luoahong kod]# tree 4. 5├── dockerfile 6├── init.sh 7└── kodexplorer4.37.zip 8 90 directories, 3 files 10[root@luoahong kod]# ll 11total 13532 12-rw-r--r-- 1 root root 258 Jan 17 13:44 dockerfile 13-rw-r--r-- 1 root root 70 Jan 17 11:45 init.sh 14-rw-r--r-- 1 root root 13845184 Jan 17 11:45 kodexplorer4.37.zip 15[root@luoahong kod]# cat dockerfile 16FROM centos:6.9 17RUN yum install httpd php php-cli unzip php-gd php-mbstring -y 18WORKDIR /var/www/html 19COPY kodexplorer4.37.zip . 20RUN unzip kodexplorer4.37.zip 21RUN chmod -R 777 /var/www/html 22ADD init.sh /init.sh 23EXPOSE 80 24CMD ["/bin/bash","/init.sh"] 25[root@luoahong kod]# cat init.sh 26#!/bin/bash 27/etc/init.d/httpd start 28tail -F /var/log/httpd/access_log
2、构建镜像
[root@luoahong kod]#docker build -t kod:v1 .
3、测试运行
1、启动容器
1[root@luoahong kod]# docker run -d -P kod:v1 2f2e286474958ee74a06328fadc4a1839a09bb4fdb8ed1f66c649881b6cff5494 3[root@luoahong kod]# docker ps -a -l 4CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f2e286474958 kod:v1 "/bin/bash /init.sh" 12 seconds ago Up 12 seconds 0.0.0.0:32768->80/tcp sad_kilby 6[root@luoahong kod]# ip add 71: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 8 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 9 inet 127.0.0.1/8 scope host lo 10 valid_lft forever preferred_lft forever 11 inet6 ::1/128 scope host 12 valid_lft forever preferred_lft forever 132: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 14 link/ether 00:0c:29:81:a7:80 brd ff:ff:ff:ff:ff:ff 15 inet 192.168.228.133/24 brd 192.168.228.255 scope global dynamic eth0 16 valid_lft 1480sec preferred_lft 1480sec 17 inet6 fe80::20c:29ff:fe81:a780/64 scope link 18 valid_lft forever preferred_lft forever 193: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 20 link/ether 02:42:1b:26:a7:af brd ff:ff:ff:ff:ff:ff 21 inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 22 valid_lft forever preferred_lft forever 23 inet6 fe80::42:1bff:fe26:a7af/64 scope link 24 valid_lft forever preferred_lft forever 2511: veth8674b65@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP 26 link/ether 5a:90:13:a4:70:28 brd ff:ff:ff:ff:ff:ff link-netnsid 0 27 inet6 fe80::5890:13ff:fea4:7028/64 scope link
2、登录测试

3、桌面截图
