一、把项目封装成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、桌面截图

Docker:dockerfile构建php项目 [八]的更多相关文章

  1. Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别

    构建自己的centos镜像 docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll.vim等等, 下面介绍制作一个功能较全的自己的centos镜像. 步骤 ...

  2. docker dockerfile构建自己的tomcat镜像

    文件 1.apache-tomcat-8.5.24.tar.gz, jdk-8u151-linux-x64.tar.gz Dockerfile文件: FROM centosWORKDIR /usrCO ...

  3. springboot~使用docker构建gradle项目

    这是一篇关系到四个知识点的文章,分别是java,docker,springboot和gradle,我们希望在java环境下,使用springboot框架,通过gradle去构建项目,然后把项目部署和运 ...

  4. gradle 项目构建以及发布maven 私服&& docker 私服构建发布

    1. 项目结构   2. 代码说明 a. Dockerfile docker 构建的 FROM openjdk:8-jre-alpine WORKDIR /appdemo/ COPY build/di ...

  5. Docker学习(六)Dockerfile构建自定义镜像

    Docker学习(六)Dockerfile构建自定义镜像 前言 通过前面一篇文章可以知道怎么去使用一个镜像搭建服务,但是,如何构造自己的一个镜像呢,docker提供了dockerfile可以让我们自己 ...

  6. Azure Devops实践(5)- 构建springboot项目打包docker镜像及容器化部署

    使用Azure Devops构建java springboot项目,创建镜像并容器化部署 1.创建一个springboot项目,我用现有的项目 目录结构如下,使用provider项目 在根目录下添加D ...

  7. 如何使用Docker构建前端项目

    原文链接 Docker单独部署前端项目和Node项目是非常便捷的,在这里分享一下Docker的使用,主要聊聊它的部署实践.(我是window10专业版安装Docker) Docker Docker是一 ...

  8. 用Dockerfile构建docker image

    dockerfile是为快速构建docker image而设计的,当你使用docker build 命令的时候,docker 会读取当前目录下的命名为Dockerfile(首字母大写)的纯文本文件并执 ...

  9. 使用Dockerfile构建镜像-Docker for Web Developers(5)

    1.理解Dockerfile语法 语法命令 命令功能 举例 FROM 所有的dockerfile都必须以FROM命令指定镜像基于哪个基础镜像来制作 FROM ubuntu:14:04 MAINTAIN ...

随机推荐

  1. Linux学习历程——Centos 7 grep命令

    一.命令简介 grep 命令用于在文本中执行关键词搜索,并显示匹配的结果. 由于grep命令参数很多,这里只列出一些常用的参数. 参数 作用 -b 将可执行文件当作文本文件来搜索 -c 仅显示找到的行 ...

  2. mysql解决select * from 表名 (where + 约束条件为空)

    mysql解决select * from 表名 (where + 约束条件为空),示例如下: SELECT * from tableName WHERE name is NULL; 从 tableNa ...

  3. 设置TextBlock默认样式后,其他控件的Text相关属性设置失效问题

    问题: 定义了默认TextBlock样式后,再次自定义下拉框 or 其他控件 ,当内部含有TextBlock时,设置控件的字体相关样式无效,系统始终使用TextBlock设置默认样式 解决方案: 为相 ...

  4. flex布局justify-content属性和align-items属性设置

    前言: flex最常用的就是justify-content和align-items了,这里把这两个属性介绍下,大家更多关于flex布局可以查看阮一峰的日志,写的非常清楚! 阮一峰flex布局的日志:h ...

  5. Navicat Premium 12.0.18安装与激活

    因为要学习测试,postgresql , 没弄过所以用这个软件... https://www.jianshu.com/p/42a33b0dda9c

  6. 前端——JavaScript

    何谓JavaScript?它与Java有什么关系? JavaScript与HTML.CSS组合使用应用于前端开发,JavaScript是一门独立的语言,浏览器内置了JS的解释器.它除了和Java名字长 ...

  7. 以springMVC为例获取上传视频文件时长

    毕设项目是一个在线学习系统,教师用户有上传视频的功能,在答辩之前赶了一个demo出来,好多功能都写死了,比如课程学习进度就是被我写死在前端的一个变量,最近导师要我把项目打包发给他,这才心慌慌赶紧把这些 ...

  8. 嵌入式操作系统---打印函数(printf/sprintf)的实现

    一.打印函数简介 作用:将“给定的内容”按照“指定的格式”输出到“指定目标内”. 打印函数的基本格式: char print_buf[BUF_SIZE]; void printf(const char ...

  9. iOS开发基础-UITableView基本属性

    设置 UITableView 中 cell 的背景颜色. 示例1:通过 backgroundView 设置. UIView *view1 = [[UIView alloc] init]; view1. ...

  10. 探寻 JavaScript 精度问题

    阅读完本文可以了解到 0.1 + 0.2 为什么等于 0.30000000000000004 以及 JavaScript 中最大安全数是如何来的. 十进制小数转为二进制小数方法 拿 173.8125 ...