Docker SDK使用(二)---Golang实现docker run docker

4 篇文章 0 订阅

环境信息

开发环境:window10 64位
开发工具:IntelliJ IDEA 2019.2.3 x64
部署操作系统:Centos7
Golang版本:1.13
Docker版本:18.06.3-ce

       接上篇《Docker SDK使用(一)—Golang实现pull镜像创建容器等》
       本章将上篇的linux二进制可执行文件docker部署,在这个docker里去创建另外一个docker(bfirsh/reticulate-splines)。

Docker A

Dockerfile内容如下,与linux二进制可执行文件在同一个目录

#使用了镜像大小体积只有5MB的alpine镜像
FROM alpine:latest
#在docker的根目录下创建相应的使用目录
RUN mkdir -p /go/app
#设置工作路径
WORKDIR /go/app
#把上文编译好的main文件添加到镜像里
COPY . .
#暴露容器内部端口
#EXPOSE 9090
#入口
ENTRYPOINT ["/go/app/dockersdk"]

进入Dockerfile目录执行如下命令,创建镜像

[root@loalhost dockersdk]# docker build -t godksdk:V1.0 -f Dockerfile .

在这里插入图片描述
查询一下服务器镜像和容器情况
在这里插入图片描述

Docker A run Docker B

执行如下命令,运行容器。

[root@loalhost dockersdk]# docker run --name godksdk -d --privileged -u root \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker godksdk:V1.0

       上面命令中,privileged以及其后面的是必须的,使用容器有权限执行宿主机docker命令。
执行情况如下
在这里插入图片描述
       查询一下服务器镜像和容器情况,对比执行之前的服务器镜像和容器。可以看到成功拉取了bfirsh/reticulate-splines镜像并创建了容器。而Golang代码容器由于代码没有做特别处理,成功启动bfirsh/reticulate-spline容器后就退出了。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值