之前寫了 製作php+nginx環境鏡像 ,製作了一個php鏡像。本文主要和大家分享關於k8s部署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來查看
#之前寫了製作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來查看。
相關推薦:
以上是關於k8s部署php鏡像實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!