首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用GCP在kubernetes上运行修改后的Dockerfile

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

Stack Overflow用户
提问于 2018-01-28 13:51:12
回答 1查看 79关注 0票数 0

我在google云平台上有一个Kubernetes v1.8.6集群。

我的台式机是一个macbook,高塞拉,kubectl安装使用google,一个接口是用自制的虚拟机安装的。

我使用以下kubernetes部署yaml文件安装了php docker映像:

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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中构建了一个映像。

我不知道码头映像被放置在哪里,因为码头在高塞拉的VM中用完了,我有点困惑,如果我有本地访问或需要做scp,但它可能不需要。

有办法直接安装我创建的Dockerfile吗?我必须创建映像并以某种方式安装它吗?如果是的话,怎么做?

我有点困惑,所以任何关于这个问题的信息都会非常感谢。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-28 17:17:35

首先,你需要建立你的码头形象。然后,您需要将您的图像推入码头注册表。为什么?这样你的吊舱就可以从注册表中提取图像了。建筑形象是不够的。

现在你该把那个码头形象保留在哪里。你可以试试https://hub.docker.com/

您可以按照以下步骤操作:

使用以下命令

代码语言:javascript
运行
复制
$ 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>

现在,您已经准备好将您的对接者图像推入您的注册表。

在这种情况下,您想要推送名为tuxin-php的图像。因此,您需要使用相同的名称https://hub.docker.com/在docker ( tuxin-php )中创建一个存储库。(https://docs.docker.com/docker-hub/repos/)

现在试试这个

代码语言:javascript
运行
复制
$ docker build -t xxxx/tuxin-php ./build
$ docker push xxxx/tuxin-php

在这里,xxxx是您的停靠用户名。

当您推送xxxx/tuxin-php时,您的映像将存储在用户名下的tuxin-php存储库中。

最后,你必须使用这个图像。

代码语言:javascript
运行
复制
containers:
- name: php
  image: xxxx/tuxin-php

你的吊舱会把xxxx/tuxin-php从码头枢纽拉出来。

希望这能帮上忙

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48487071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档