您的位置:首页 > 编程语言 > PHP开发

k8s部署php镜像

2017-12-20 22:27 741 查看
之前写了 制作php+nginx环境镜像

制作了一个php镜像。

那么如何使用这个镜像呢?

1.可以直接用docker来运行这个容器

docker run --rm -d --name php -p 80:80 -v /tmp:/app


docker命令解释:

–rm : 防止docker产生tag为 none的的镜像

-d : 使得产生的container在后台运行

–name : 指定该container 名称为php ,方便之后操作

-p :指定端口 第一个80为宿主机的端口号,第二个80为container的端口号

第一个端口号可以是你的宿主机的任何可用端口,可以用localhost:端口号进行访问。

-v : v是volume的缩写,即将宿主机的卷挂载到container中

第一个/tmp指的是宿主机中的path路径

第二个/app是container的path路径

由于基础镜像webdevops/php-nginx:centos-7-php56中配置的nginx root路径为/app,所以此处指定为/app

在/tmp中添加文件index.php

内容为:

<? phpinfo() ?>


启动容器后即可访问宿主机地址+端口号,如curl localhost:端口号,即会返回phpinfo

webdevops/php-nginx镜像文档中即可看到配置文件的路径

此处生效的nginx配置文件路径是:/opt/docker/etc/nginx/vhost.conf

在该配置文件中可以看到监听80端口的配置root路径为/app

可以修改该路径

2.使用k8s部署

将镜像上传至仓库中

docker push image_name

新建deployment 配置文件:php-deployment.yaml

deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: php
spec:
replicas: 1
template:
metadata:
labels:
app: php
spec:
containers:
- name: php
image: image_address
ports:
- containerPort: 80
volumeMounts:
- mountPath: /app
name: php-volume
volumes:
- name: php-volume
hostPath:
path: /tmp


新建 php-service.yaml文件

kind: Service
apiVersion: v1
metadata:
name: php-service
namespace: default
labels:
app: php
spec:
ports:
- name: listener
protocol: TCP
port: 80
targetPort: 80
selector:
app: php
type: LoadBalancer
externalIPs:
- your ip address


执行命令:

kubectl apply -f php-deployment.yaml
kubectl apply -f php-service.yaml


可通过 以下命令查看

kubectl get deployment
kubectl get service


之后可以通过访问你的宿主机ip来获得phpinfo

当然你的k8s集群中运行php容器节点的/tmp路径下需要有index.php这个文件

至于是哪个节点运行了这个容器可以通过 kubecel get pods php来查看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker php nginx