版权所有,未经许可,禁止转载
章节
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
镜像成功运行,输出了一条信息。