[英]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.