簡體   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