繁体   English   中英

使用GCP在kubernetes上运行修改后的Dockerfile

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM