tencent cloud

文档反馈

使用容器镜像

最后更新时间:2024-04-22 17:45:15

    操作场景

    目前云函数容器镜像已开放使用,您可以使用云函数容器镜像进行开发。本文为您介绍如何安装镜像和使用镜像进行开发。

    前提条件

    已在开发环境安装 Docker

    操作步骤

    获取镜像

    云函数镜像基于 Centos 7.7.1908版本,目前已公开在腾讯云容器服务 公有镜像。您可在公有镜像页面搜索 scf-repo查看镜像信息
    1. 执行以下命令拉取镜像。示例如下:
    # 拉取 SCF 源镜像
    docker pull ccr.ccs.tencentyun.com/scf-repo/scf-runtimes-image:latest
    注意:
    如果命令提示权限错误无法正常执行,请在命令前加 sudo 再执行。
    2. 您可以在 /scf/lang/ 目录下查看当前镜像所包含的 Runtime。 由于云函数源镜像包括所有的 Runtime,单个容器镜像较大。请参考以下表格内容,根据需求自行选择 Runtime 镜像。
    Runtime
    地址
    SCF
    ccr.ccs.tencentyun.com/scf-repo/scf-runtimes-image:latest
    Go 1.8
    ccr.ccs.tencentyun.com/scf-repo/runtime-go1:latest
    Python 2.7
    ccr.ccs.tencentyun.com/scf-repo/runtime-python2:latest
    Python 3.6
    ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest
    PHP 5.6
    ccr.ccs.tencentyun.com/scf-repo/runtime-php5:latest
    PHP 7.2
    ccr.ccs.tencentyun.com/scf-repo/runtime-php7:latest
    Java 8
    ccr.ccs.tencentyun.com/scf-repo/runtime-java8:latest
    Node 6.10
    ccr.ccs.tencentyun.com/scf-repo/runtime-node6:latest
    Node 8.9
    ccr.ccs.tencentyun.com/scf-repo/runtime-node8:latest
    Node 10.15
    ccr.ccs.tencentyun.com/scf-repo/runtime-node10:latest
    Node 12.16
    ccr.ccs.tencentyun.com/scf-repo/runtime-node12:latest
    3. 本文以 scf:python3 标签为例,执行以下命令为镜像重新贴上标签。示例如下:
    docker pull ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest
    # 通过该指令找到 IMAGE ID 并复制
    docker images
    # docker tag IMAGE_ID REPOSITORY:TAG
    docker tag 0729ecc15d37 scf:python3
    执行结果如下图所示:
    image-20201204112659373
    
    
    说明:
    如果无需为镜像贴标签,则需将示例中的 scf:python3 替换为 ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest

    使用镜像进行依赖安装

    本文以 Node.js 12 环境安装 NodeJieba 为例,介绍如何使用镜像安装依赖。

    获取 Node.js 12 镜像

    执行以下命令拉取镜像。示例如下:
    docker pull ccr.ccs.tencentyun.com/scf-repo/runtime-node12:latest
    # 通过该指令找到 IMAGE ID 并复制
    docker images
    docker tag d64a665357b6 scf:node12

    启动容器并挂载目录

    执行以下命令,启动容器并将本地目录挂载到容器内的目录(若目录不存在,将会自动创建该目录),本文以将 /path/to/your_project 目录挂载至容器中的 /tmp/your_project 目录为例。示例如下:
    docker run -it -v /path/to/your_project:/tmp/your_project scf:node12 /bin/bash

    容器内安装依赖

    1. 启动容器后,执行 cd 命令进入容器内目录,在该目录执行 npm 命令安装 NodeJieba。示例如下:
    cd /tmp/your_project
    npm install nodejieba --save
    2. 依赖将安装在本地 /path/to/your_project 目录下。执行 exit 命令可退出容器。示例如下:
    # 退出容器
    exit
    通过上述步骤即可通过容器镜像安装依赖,您可以将代码重新部署到云函数。针对 Node.js 语言,同时支持 在线依赖安装,上传时自动完成依赖的安装。

    使用镜像进行开发

    本文以 Python 3.6 为例,介绍如何使用容器进行开发测试。

    获取 Python 3.6 镜像

    执行以下命令拉取镜像。示例如下:
    docker pull ccr.ccs.tencentyun.com/scf-repo/runtime-python3:latest
    # 通过该指令找到 IMAGE ID 并复制
    docker images
    docker tag d64a665357b6 scf:python3

    启动容器并挂载目录

    1. 执行以下命令,启动容器并将本地项目目录挂载到容器内的目录(若目录不存在,将会自动创建该目录)。示例如下:
    docker run --name test -it -v /path/to/your_project:/tmp/your_project scf:python3 /bin/bash
    2. 执行 docker exec 命令进入容器进行开发。示例如下:
    docker ps
    # 获得CONTAINER ID
    docker exec -it CONTAINER_ID /bin/bash

    保存镜像

    执行以下命令,可以将修改提交到本地的镜像中,以便后续继续使用。示例如下:
    # 获得容器的 ID
    docker ps
    # 保存镜像至本地
    # docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    docker commit db47b8e66e64 scf:myimage
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持