上云无忧 > 文档中心 > 腾讯云容器服务实战教程 - docker run 参数适配
容器服务 TKE
腾讯云容器服务实战教程 - docker run 参数适配

文档简介:
本文介绍将已经在本地的 Docker 中调试完毕的容器,迁移到腾讯云容器服务平台中运行时,如何将 Docker run 命令中的参数与腾讯云容器控制台的参数对应。本文以创建一个简单的 GitLab 服务为例。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠
本文介绍将已经在本地的 Docker 中调试完毕的容器,迁移到腾讯云容器服务平台中运行时,如何将 Docker run 命令中的参数与腾讯云容器控制台的参数对应。本文以创建一个简单的 GitLab 服务为例。

gitlab 容器的参数示例

您可以使用以下 docker run 命令创建出一个简单的 GitLab 容器:
		
docker run \
-d \
-p 20180:80 \
-p 20122:22 \
--restart always \
-v /data/gitlab/config:/etc/gitlab \
-v /data/var/log/gitlab:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
--name gitlab \
gitlab/gitlab-ce:8.16.7-ce.0
-d:容器在后台运行。容器平台都是以后台的形式来运行容器,所以本参数不需要在容器控制台指定。
-p:指定端口映射。这里映射了两个端口,容器端口分别是80和22,对外暴露的端口可自行定义,对应到控制台,添加两条端口映射规则,并填写对应的容器端口和服务端口。由于 GitLab 需要提供外网访问,采用了提供公网访问访问方式。如下图所示:

--restart:本参数用于指定在容器退出时,是否重启容器。容器平台创建的所有容器退出时,都会重启容器,所以本参数不需要在容器控制台指定。
-v:本参数用于指定容器卷。上面的命令指定了三个卷,对应到容器控制台,我们也需要添加三个数据卷,并在实例内容器里将这三个卷挂载到容器里。首先我们创建三个卷。如下图所示:

在实例内容器里面,将三个卷分别挂载到容器里。如下图所示:

这里要注意的是,数据卷类型选择的是使用主机路径,所以容器运行过程中,在容器中生产的数据会被保存到容器所在的节点上,如果容器被调度到其他的节点上,那么数据就丢失了。您可以使用云硬盘类型数据卷,容器的数据会保存到云硬盘中,即使容器被调度到其他的节点,容器卷的数据也不会丢。
--name:容器运行的名字。这个参数,对应到容器控制台就是服务名,当然容器名也可以跟服务名用相同的名字。

其它参数

以下为执行 docker run 时,其它常见的参数:
-i:交互式执行容器。容器控制台只支持后台运行容器,本参数不支持。
-t:分配虚拟终端,本参数不支持。
-e:容器运行的环境变量。例如用户执行以下的 docker run 命令:
		
docker run -e FOO='foo' -e BAR='bar' --name=container_name container_image
这里用户希望为容器添加两个环境变量,在容器控制台创建服务时,容器的高级设置里可添加容器的环境变量。变量名和变量值分别为 :
变量名:FOO,变量值:foo。
变量名:BAR,变量值:bar。

Command 和 Args

您可以在 docker run 命令中指定进程的命令和参数。例如:
		
docker run --name=kubedns gcr.io/google_containers/kubedns-amd64:1.7 /kube-dns --domain=cluster.local. --dns-port=10053 -v 2
指定了容器进程的命令为 /kube-dns,并指定了三个参数:--domain=cluster.local.--dns-port=10053-v 2。在控制台中参数设置如下图所示:

相似文档
  • 操作场景: 腾讯云容器服务(TKE)集群中容器系统时间默认为 UTC 协调世界时间 (Universal Time Coordinated),与节点本地所属时区 CST (上海时间)相差8个小时。在容器使用过程中,当需要获取系统时间用于日志记录、数据库存储等相关操作时,容器内时区不一致问题将会带来一系列困扰。
  • 操作场景: 容器有时会在发生异常后无法正常工作,业务日志中若无足够的信息来定位问题原因,则需要结合 coredump 来进一步分析,本文将介绍如何使容器产生 coredump 并保存。
  • 操作场景: 动态准入控制器 Webhook 在访问鉴权的过程中可以更改请求对象或完全拒绝该请求,其调用 Webhook 服务的方式使其独立于集群组件。动态准入控制器具有很大的灵活性,可便捷地进行众多自定义准入控制。下图为动态准入控制在 API 请求调用链的位置,如需了解更多信息,请前往 Kubernetes 官网。
  • 总述: DNS 作为 Kubernetes 集群中服务访问的第一环节,其稳定性和性能至关重要,如何以更优的方式配置和使用 DNS,涉及到方方面面,本文档将总结这些最佳实践。
  • 操作场景: 通过在集群节点上以 Daemonset 的形式运行 NodeLocal DNS Cache,能够大幅提升集群内 DNS 解析性能,以及有效避免 conntrack 冲突引发的 DNS 五秒延迟。 本文接下来将详细介绍如何在 TKE 集群中使用 NodeLocal DNS Cache。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部