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