之前寫了 製作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.yamlapiVersion: extensions/v1beta1kind: Deploymentmetadata: name: phpspec: 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: ServiceapiVersion: v1metadata: name: php-service namespace: default labels: app: phpspec: ports: - name: listener protocol: TCP port: 80 targetPort: 80 selector: app: php type: LoadBalancer externalIPs: - your ip address
執行命令:
kubectl apply -f php-deployment.yamlkubectl apply -f php-service.yaml
可通過 以下命令查看
kubectl get deploymentkubectl 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.yamlapiVersion: extensions/v1beta1kind: Deploymentmetadata: name: phpspec: 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: ServiceapiVersion: v1metadata: name: php-service namespace: default labels: app: phpspec: ports: - name: listener protocol: TCP port: 80 targetPort: 80 selector: app: php type: LoadBalancer externalIPs: - your ip address
執行命令:
kubectl apply -f php-deployment.yamlkubectl apply -f php-service.yaml
可通過 以下命令查看
kubectl get deploymentkubectl get service
之後可以通過訪問你的宿主機ip來獲得phpinfo
當然你的k8s叢集中運行php容器節點的/tmp路徑下需要有index.php這個檔案
至於是哪個節點運行了這個容器可以通過 kubecel get pods php來查看。