tencent cloud

使用容器镜像
最后更新时间:2024-04-22 17:45:15
使用容器镜像
最后更新时间: 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

本页内容是否解决了您的问题?
您也可以 联系销售 提交工单 以寻求帮助。

文档反馈