[英]running modified Dockerfile on kubernetes with GCP
我在Google雲端平台上有一個Kubernetes v1.8.6集群。
我的桌面是Macbook Pro,具有高山脈,使用google-cloud-sdk安裝了kubectl,使用自制軟件將docker安裝為vm。
我使用以下kubernetes部署yaml文件安裝了php docker鏡像:
apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: php-deployment
labels:
app: php
spec:
replicas: 1
selector:
matchLabels:
app: php
template:
metadata:
labels:
app: php
spec:
containers:
- name: php
image: php:7.1.13-apache-jessie
volumeMounts:
- mountPath: /var/www/html
name: httpd-storage
- mountPath: /etc/apache2
name: httpd-conf-storage
- mountPath: /usr/local/etc/php
name: php-storage
ports:
- containerPort: 443
- containerPort: 80
volumes:
- name: httpd-storage
gcePersistentDisk:
fsType: ext4
pdName: httpd-disk
- name: httpd-conf-storage
gcePersistentDisk:
fsType: ext4
pdName: httpd-conf-disk
- name: php-storage
gcePersistentDisk:
fsType: ext4
pdName: php-disk
我用kubectl create -f yaml.file
安裝了它
它有效..到目前為止很好。
現在,我想擴展此映像以在其上安裝CertBot。
所以我創建了以下Dockerfile
:
FROM php:7.1.13-apache-jessie
RUN bash -c 'echo deb http://ftp.debian.org/debian jessie-backports main >> /etc/apt/sources.list'
RUN apt-get update
RUN apt-get install -y python-certbot-apache -t jessie-backports
我將此文件放置在名為build
目錄中,並使用docker build -t tuxin-php ./build
從dockerfile中docker build -t tuxin-php ./build
。
我不知道將docker映像放在何處,因為docker在高塞拉利昂(Super Sierra)的虛擬機用完了,如果我具有本地訪問權限或需要執行scp,我有點困惑,但是可能不需要。
有沒有一種方法可以直接安裝我創建的Dockerfile? 我必須創建映像並以某種方式安裝它嗎? 如果可以的話?
我有些困惑,因此不勝感激。
謝謝
首先,您需要構建您的docker映像。 然后,您需要將映像推送到Docker注冊表中。 為什么? 這樣您的Pod可以從該注冊表中提取該映像。 建築圖像還不夠。
現在您應該在哪里保存該Docker映像。 您可以嘗試https://hub.docker.com/ 。
您可以按照以下步驟操作:
使用這些命令
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: <your docker hub username>
Password: <your docker hub password>
現在,您可以將Docker映像推送到注冊表中了。
在這種情況下,您要推送名為tuxin-php
映像。 因此,您需要使用同名tuxin-php
hub( https://hub.docker.com/ )中創建一個存儲庫。 ( https://docs.docker.com/docker-hub/repos/ )
立即嘗試
$ docker build -t xxxx/tuxin-php ./build
$ docker push xxxx/tuxin-php
在這里,
xxxx
是您的docker用戶名。
當您按xxxx/tuxin-php
,您的映像將以您的用戶名存儲在tuxin-php
存儲庫中。
最后,您必須使用此圖像。
containers:
- name: php
image: xxxx/tuxin-php
您的pod將從xxxx/tuxin-php
hub提取xxxx/tuxin-php
。
希望這會有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.