版权所有,未经许可,禁止转载



docker可以执行任何应用程序。本章我们将创建一个Php应用,并使用docker运行它。

1. 创建项目目录

我们会把这个项目的相关文件,集中放到一个目录docker-php

[root@qikegu demo]# mkdir docker-php

2. 创建PHP文件

docker-php目录下,创建一个php文件:

qikegu.php


<?php echo "This is php app - qikegu.com" ?>

3. 创建Dockerfile

创建Php文件之后,我们需要创建一个Dockerfile,其中包含了Docker的指令。在docker-php目录下创建Dockerfile,文件名必须是Dockerfile

Dockerfile

FROM php:7.3
COPY . /var/www/php
WORKDIR /var/www/php
CMD ["php", "./qikegu.php"]

所有指令都大写,这是惯例。

现在docker-php目录下有2个文件:

[root@qikegu docker-php]# ls
Dockerfile qikegu.php

4. 构建 Docker 镜像

切换到docker-php目录,运行docker build -t qikegu-php .命令,构建Docker镜像。Docker镜像可以任意取名,此处命名为qikegu-php


docker build -t qikegu-php .
Sending build context to Docker daemon 3.072kB
Step 1/4 : FROM php:7.3
7.3: Pulling from library/php
743f2d6c1f65: Already exists
6307e89982cc: Already exists
807218e72ce2: Already exists
5108df1d03f8: Already exists
6379b2ee8208: Pull complete
97904243782e: Pull complete
6f3a7ed1fc19: Pull complete
e4924fe2ab64: Pull complete
57a3ef7493d5: Pull complete
Digest: sha256:00f053cdb2e46bab5d9ea20c416a007aa84b15883b22a9073a83e1d2f96f0b55
Status: Downloaded newer image for php:7.3
---> e1dce93645bd
Step 2/4 : COPY . /var/www/php
---> d5c47dfa4f38
Step 3/4 : WORKDIR /var/www/php
---> Running in b6f81d4db002
Removing intermediate container b6f81d4db002
---> 996e3419c48f
Step 4/4 : CMD ["php -f", "qikegu.php"]
---> Running in 52957ffeebd4
Removing intermediate container 52957ffeebd4
---> df09b84b2033
Successfully built df09b84b2033
Successfully tagged qikegu-php:latest [root@qikegu docker-php]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
qikegu-php latest 25c6fdde4da0 4 minutes ago 367MB
...

这里,最后使用docker images查看镜像,可以看到构建镜像成功。接下来就可以运行镜像了。

5. 运行 Docker 镜像

执行docker run qikegu-php命令运行镜像:

[root@qikegu docker-php]# docker run qikegu-php
This is php app - qikegu.com
[root@qikegu docker-php]#

可以看到,qikegu-php镜像成功运行,输出了一条信息。

最新文章

  1. Jquery mobiscroll 移动设备(手机)wap日期时间选择插件以及滑动、滚动插件
  2. JavaScript DOM编程艺术读书笔记(三)
  3. 命令查看java的class字节码文件、verbose、synchronize、javac、javap
  4. redis学习笔记——(4)
  5. plsql 登录后,提示数据库字符集(AL32UTF8)和客户端字符集(ZHS16GBK)不一致
  6. ICSharpCode.SharpZipLib压缩解压
  7. 通过Unity依赖注入
  8. android台 cocos2d-x 翻阅相册数据
  9. 安装PyQt5之后mayavi和VTK不能使用
  10. Android群英传笔记——第七章:Android动画机制和使用技巧
  11. 【ASP.NET Core快速入门】(十五)MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
  12. asp.net core 创建允许跨域请求的api, cors.
  13. Linux - 操作系统
  14. 【转】handbrake使用教程
  15. 借鉴 学习 DELPHI 通用函数 哈哈
  16. [Fedora 20] 设置Terminal快捷键 + 设置桌面快捷方式 + Terminal透明解决方案
  17. redhat linux 6.2 安装配置GUI
  18. PhpStorm 2017 激活办法
  19. js模态窗口返回值(table)
  20. 使用c语言计算分期贷款折算年化收益率(内部收益率IRR*12)

热门文章

  1. JavaScript 中 new 关键字结合构造函数创建对象
  2. 吴裕雄--天生自然JAVAIO操作学习笔记:单人信息管理程序
  3. 多年珍藏的55w御剑字典
  4. Python字符串(二)
  5. tcpdump 抓取MySQL SQL语句脚本
  6. coding 321
  7. 自定义工具&#39;MSDiscocodeGenerator’失败。未能检索当前项目。
  8. query.locate过个过滤参数
  9. 2017北京网络赛 F Secret Poems 蛇形回路输出
  10. arm linux 移植 MQTT (paho、mosquitto)