首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为docker api的golang sdk中的ContainerCreate函数设置PortBindings配置

,可以通过以下步骤完成:

  1. 导入所需的包:import ( "context" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" )
  2. 创建Docker客户端:cli, err := client.NewClientWithOpts(client.FromEnv) if err != nil { panic(err) }
  3. 定义容器创建的配置项:config := &container.Config{ Image: "your_image_name", ExposedPorts: nat.PortSet{ "80/tcp": struct{}{}, }, } hostConfig := &container.HostConfig{ PortBindings: nat.PortMap{ "80/tcp": []nat.PortBinding{ { HostIP: "0.0.0.0", HostPort: "8080", }, }, }, }在上述代码中,我们指定了容器使用的镜像名称,并且定义了要暴露的端口和绑定的主机端口。
  4. 调用ContainerCreate函数创建容器:resp, err := cli.ContainerCreate(context.Background(), config, hostConfig, nil, nil, "your_container_name") if err != nil { panic(err) }在上述代码中,我们传入了之前定义的容器配置项和主机配置项,以及容器的名称。
  5. 启动容器:if err := cli.ContainerStart(context.Background(), resp.ID, types.ContainerStartOptions{}); err != nil { panic(err) }在上述代码中,我们使用ContainerStart函数启动了创建的容器。

完成上述步骤后,你就成功地为docker api的golang sdk中的ContainerCreate函数设置了PortBindings配置。这样,你可以通过访问主机的8080端口来访问容器中的80端口。请注意,上述代码中的"your_image_name"、"your_container_name"和"8080"应根据实际情况进行替换。

推荐的腾讯云相关产品:腾讯云容器服务(Tencent Kubernetes Engine,TKE)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker Nginx 配置 HTTPS

本文将介绍如何为通过 docker 运行 nginx 站点添加 https 支持,并自动完成证书更新。...本文演示环境:运行在 Azure 上 Ubuntu 16.04 主机(此图来自互联网): 准备环境 在 Azure 上创建 Ubuntu 类型虚机事件非常容易事情,安装 docker 也无须赘言...比较容易忽略配置合适网络安全组规则,比如打开 80 和 443 端口: 还有就是配置 DNS: 创建一个普通 http 站点 简单起见,直接使用一个镜像 nodejs 应用作为 web...站点配置 SSL/TLS 证书 有了 SSL/TLS 证书,接下来更新 nginx 配置文件就可以了,更新 nginx/conf.d/default.conf 内容如下: upstream web...其实我们配置已经自动化更新证书提供了最大便利(其实是使用 docker 带来便利),在定时任务添加下面两条记录就可以了: 0 0 1 * * /home/nick/certbot/renew_cert.sh

1.3K20

Go每日一库之121:moby(操作docker容器)

在日常开发,测试是不可避免,在针对DAO层代码写测试用例时候,直接将依赖存储服务(比如mongodb)client给mock掉,可能达不到检验代码语法或数据操作正确性目的。...// NewEnvClient 直接使用环境变量 DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH, DOCKER_API_VERSION 配置 cl...客户端 这里我们不再使用环境变量默认配置,而是通过配置参数方式初始化 Docker 客户端,同时指定连接 HTTP 客户端和上下文等信息。...(cl.ImageList(context.Background(), types.ImageListOptions{})) } 应用: 测试环节mock数据库 启动mongodb容器函数封装: package...t.Log(mongoURI) // 连接db,进行数据操作 } 总结 Docker SDK 封装了 Docker 客户端会用到指令,Go client for the Docker Engine

65751

使用docker in docker

工作需要在容器里操作docker镜像,而且又不想污染宿主机上docker镜像,找到了docker in docker(dind)方案,这里记录一下。...自己架设docker registry服务使用是自签名证书,因此参考官方文档,还设置了自签名证书对应ca证书/etc/docker/certs.d/myregistrydomain.com/ca.crt...命令容器,这里注意两点: 同样因为使用了私有的registry服务,而且证书是自签名,dockerd容器要作一些配置 因为两个container共享相同网络空间,因此直接设置DOCKER_HOST...用golang语言操作dockerd 运维时用docker命令来操作dockerd还是比较好,但有时希望以编程方式操作dockerd,这时dockersdk就派上用场了,可以参考官方文档和示例。...docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker

4.2K20

Docker容器服务配置固定容器IP教程

如果不固定ip,每次主机重启后,,docker会动态给容器分配ip,导致redis容器IP自动换了 ,然后还得去改傻妞配置就很烦,有些时候还会造成其他影响。...ls打印docker network inspect redisnet1删除docker network rm redisnet1–subnet:指定网段 CIDR 格式子网其中172.172.0.0.../16表示子网范围16位查看更多关于network操作docker network --help2)运行容器安装软件,配置网络信息docker run 参考官方文档:https://docs.docker.com...myredis1 --ip 172.172.0.2 -p 6379:6379 redis说明:加入docker内部网络: --network redisnet1配置容器在内部局域网网络别名:--network-alias...redisnet1配置在内部局域网ip地址:--ip 172.172.0.2,注意点:设置ip必须在内部网络网络范围,不然会报错,不能正常启动根据规定:忽略子网内全为0和全为1地址,剩下就是有效地址第二位

2.2K50

docker v1.11 源码重构分析

在v1.12版本,在dockerd启动参数或者配置文件,开启live-store 参数即可,具体参考 官方live-store升级dockerd文档。...###dockerd启动流程 在cmd/dockerd/docker.gomain函数,进行一些参数初始化工作后,会调用到cmd/dockerd/daemon.gostart()函数: if...命令行执行分析 docker client端docker入口函数在cmd/docker/docker.go当中,在main函数,会对命令行参数进行处理,以docker create例,最终会调用到...然后通过以下源码调用到vendor/src/github.com/docker/engine-api/client/container_create.goContainerCreate函数。..., name) 在ContainerCreate函数,会向api server端发起post请求: serverResp, err := cli.post(ctx, "/containers/create

1.5K80

Docker基本介绍

Docker采用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器,Docker容器通过Docker镜像来创建,容器与镜像关系类似于面向对象编程对象与类架构介绍总体架构Docker...)创建一个mux.Router,提供请求路由功能,在Golanggorilla/mux是一个强大URL路由器以及调度分发器,该mux.Router添加了众多路由项,每一个路由项由HTTP请求方法...Handler对象中有一项{"create": daemon.ContainerCreate,},则说明当名为"create"Job在运行时,执行daemon.ContainerCreatehandlerC...GraphDriver架构如下:NetworkDriver用途是完成Docker容器网络环境配置,其中包括Docker启动时Docker环境创建网桥,Docker容器创建时其创建专属虚拟网卡设备...、以及Docker容器分配IP、端口并与宿主机做端口映射、设置容器防火墙策略等NetworkDriver架构如下:ExecDriver作为Docker容器执行驱动,负责创建容器运行命名空间,负责容器资源使用统计与限制

21410

【K8s】kubelet 源码分析 01-03

api.ContainerManifest, handler SyncHandler) {}etcdChannelfileChannelserverChannelhttpChannel这个函数启动循环...,监控各个通道内容,每次只同步一个通道内容;这里着重分析 SyncManifests() 方法实现:func (sl *Kubelet) SyncManifests(config []api.ContainerManifest...current state同步配置容器列表,比较期望状态和主机上容器状态;-- 如果对应节点上存在,则不进行处理-- 如果对应节点上不存在,则需要在对应节点上启动容器;---1)判断对应节点上是否存在容器..., container *api.Container) (name string, err error) {}-- 拉取镜像sl.pullImage(container.Image)这个函数,是直接执行...{PortBindings: portBindings,Binds: binds,})这里是使用了 docker-client 方式操作 Docker 接口;至此,kubelet 就完整启动了容器

34430

Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇(内附开发 demo)

系列 云原生 API 网关,gRPC-Gateway V2 初探 Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇 鉴权微服务数据持久化 使用 Docker...# Status: Image is up to date for mongo:4.4.5 # docker.io/library/mongo:4.4.5 启动 docker run -p 27017...OK,我们看到成功映射了容器端口(27017/tcp)到了本机 :27017。 MongoDB for VS Code 因为开发环境是 VS Code,所以安装一下它(开发时,用它足够了)。...用户 OpenID 查询/插入业务逻辑(MongoDB 指令分析) 一句话描述: 在 account 集合查找用户 open_id 是否存在,存在就直接返回当前记录,不存在就插入并返回当前插入记录...满足查询条件记录存在时,不执行 setOnInsert 操作。满足条件记录不存在时,执行 setOnInsert 操作。

1.1K20

关于docker容器启动后修改或添加端口

docker容器启动后怎么修改端口映射?在docker run创建并运行容器时候,可以通过-p指定端口映射规则。但是,也会遇到刚开始忘记设置端口映射或者设置错了需要修改情况。...当docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。 通常间接办法是,保存镜像,再创建一个新容器,在创建时指定新端口映射。...方法二:利用docker commit新构镜像 docker commit:把一个容器文件改动和配置信息commit到一个新镜像。...文件端口(如果config.v2.json里面也记录了端口,也要修改) 注:以下是我个人操作 363ff2d977f8是CONTAINER ID 此次操作想让宿主机8080端口映射容器内80端口...配置文件路径/var/lib/docker/containers/363ff2d* 先修改hostconfig.json; 如果之前没有端口映射, 应该有这样一段: “PortBindings

25.7K61

终于有人把 Docker 讲清楚了,万字详解!

client 发送请求,架构图如下: 在 Docker 启动过程,通过包 gorilla/mux(golang 类库解析),创建了一个 mux.Router,提供请求路由功能。...在 Golang ,gorilla/mux 是一个强大 URL 路由器以及调度分发器。...举例说明,Engine handler 对象中有一项:{“create”: daemon.ContainerCreate},则说明当名为 create job 在运行时,执行是 daemon.ContainerCreate...graphdriver 架构如下: networkdriver 用途是完成 Docker 容器网络环境配置,其中包括 Docker 启动时 Docker 环境创建网桥;Docker 容器创建时其创建专属虚拟网卡设备...;以及 Docker 容器分配 IP、端口并与宿主机做端口映射,设置容器防火墙策略等。

1K10

Docker - 修改容器端口映射方法

Docker 建立好容器后,配置并不容易修改,本文记录修改建立好容器端口映射方法。...好处是包治百病,正规途径 缺点就是过程繁琐,不够优雅 方法二 端口映射等容器信息都是存在某个地方,通过配置文件管理,我们仅需修改配置文件端口信息即可完成改写 以我当前 nginx...容器例 查看需要修改容器信息 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES...ID 容器相关配置都在其 ID 对应子目录里 cd /var/lib/docker/containers/5190850b4fc......hostconfig.json 和 config.v2.json 两个文件 修改 hostconfig.json 在查看内容时,可以发现 json PortBindings 键值对应内容即是端口映射

2.7K10

关于docker容器启动后修改或添加端口

docker容器启动后怎么修改端口映射?在docker run创建并运行容器时候,可以通过-p指定端口映射规则。但是,也会遇到刚开始忘记设置端口映射或者设置错了需要修改情况。...当docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。 通常间接办法是,保存镜像,再创建一个新容器,在创建时指定新端口映射。...方法二:利用docker commit新构镜像 docker commit:把一个容器文件改动和配置信息commit到一个新镜像。...文件端口(如果config.v2.json里面也记录了端口,也要修改) 注:以下是我个人操作 363ff2d977f8是CONTAINER ID 此次操作想让宿主机8080端口映射容器内80端口...配置文件路径/var/lib/docker/containers/363ff2d* 先修改hostconfig.json; 如果之前没有端口映射, 应该有这样一段: “PortBindings

4.4K10

万字详解Docker架构原理、功能及使用

Docker启动过程,通过包gorilla/mux(golang类库解析),创建了一个mux.Router,提供请求路由功能。...在Golang,gorilla/mux是一个强大URL路由器以及调度分发器。...原则上,Docker Server运行是众多job一个,但是为了强调Docker Server重要性以及后续job服务重要特性,将该”serveapi”job单独抽离出来分析,理解Docker...举例说明,Enginehandler对象中有一项:{“create”: daemon.ContainerCreate,},则说明当名为”create”job在运行时,执行是daemon.ContainerCreate...networkdriver用途是完成Docker容器网络环境配置,其中包括Docker启动时Docker环境创建网桥;Docker容器创建时其创建专属虚拟网卡设备;以及Docker容器分配IP

2K10
领券