我们使用的docker,都是在本机之内使用的,即docker服务端与客户端都有同一个机器,但是,有时候,需要在本机连接远程服务器的docker,本文就此情形展开研究。

基础知识:docker的运行

我们使用apt安装docker后,会自动配置很多东西,只是这些操作隐藏起来了,让我们使用一个apt-get install就完成操作。docker分服务端和客户端,但是在命令形式上区分不出来。我们在运行service docker start之后,docker服务就启动了,可以使用ps aux | grep docker来查询,如下:

root     11602  0.5  2.3 570236 47856 ?        Ssl  11:57   0:00 /usr/bin/dockerd -H fd://

可以看到,有一个名称为dockerd的进程,从名称看出,这是一个守护进程(ddaemon的首字母),所以它就是docker的服务器。这个服务器必须运行,如果不运行,是无法正常使用大部分的docker命令的(但docker -v不受影响)。比如:

# docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

错误提示信息十分明显:就是没有运行服务器。
只是平常我们都在同一机子上使用docker,对这些没有留意,以为只有一个docker程序。

既然有服务器,那么就可以将docker服务布置到其它机器,或者使用其它机器上的docker服务。

问题提出

考虑以下场合:
jenkins部署在docker里,但CICD中需要在jenkins中构建docker镜像。方法有:

  • docker in docker,在docker容器中安装docker服务,需要在docker run 时添加特权选项。
  • docker in docker,挂载宿主的docker服务,jenkins只需要docker客户端。
  • jekins远程到其它主机,在该主机上进行构建。

本文使用第三方的docker服务器。

实现方案

首先停止docker服务:

service docker stop

修改/lib/systemd/system/docker.service文件,将原来的:

ExecStart=/usr/bin/dockerd -H fd://

修改为:

ExecStart=/usr/bin/dockerd -H tcp://192.168.1.78:2376

注意,tcp://192.168.1.78本笔者的测试机器IP,需要根据实际情况修改。
重新启动:

systemctl daemon-reload
service docker start

使用示例:

docker -H tcp://192.168.1.78:2376 build -t busybox_t .

生成的镜像位于192.168.1.78。
如果服务没运行,则会提示Cannot connect to the Docker daemon at tcp://192.168.1.78:2376. Is the docker daemon running?。这也前面的错误消息是类似的。

在docker服务器上查看:

docker -H tcp://192.168.1.78:2376 images
REPOSITORY                                       TAG                 IMAGE ID            CREATED              SIZE
busybox_t                                        latest              ad27937bd9f8        About a minute ago   4.39MB

小结

1、只能将docker服务器单独针对此场合而用。在命令操作上,必须在docker后添加-H tcp://192.168.1.78:2376。其它选项、参数无变化。如果不添加会卡住,因为没有指定docker服务器。
2、本文仅仅进行尝试,对此种方法还没有太多的认识和实践指导。

我的docker随笔10:docker客户端使用其它主机的docker服务器相关推荐

  1. 我的docker随笔22:多域名同主机部署

    需求: 只有一台云主机,但有多个不同域名网站,甚至还有二级域名.不能通过端口访问,即只有域名(二级域名).同时需要启用 https (到期自动更新证书). 网站内容为静态文件(当前暂定),docker ...

  2. Docker 1.10版本发布

    本文讲的是Docker 1.10版本发布,[编者的话]Docker 1.10于二月初发布了,这是容器社区最近的重大事件,除了修复很多bug和功能增强之外,Docker1.10还引入了几个我们一直期待的 ...

  3. 2台主机的docker互相通信的方法

    主机清单: 192.168.6.132 主机名 vm132 系统centos7 192.168.6.132 主机名 vm132 系统centos7 安装docker wget -O /etc/yum. ...

  4. 高级架构师_Docker_第2章_ Docker核心原理_ 第7节IDEA集成Docker

    高级架构师_Docker_第2章_ Docker核心原理_ 第7节IDEA集成Docker 文章目录 高级架构师_Docker_第2章_ Docker核心原理_ 第7节IDEA集成Docker IDE ...

  5. 我的docker随笔19:Nextcloud部署

    一.背景 Nextcloud是个人云存储服务,提供云存储服务,内置了Office文档.图片相册.日历联系人.两步验证.文件管理.RSS阅读等丰富的应用.可安装在本地或云主机,本文使用Docker进行部 ...

  6. 极客日报第 28 期:苹果为取代高通芯片,开始研发蜂窝网调制解调器;Docker 20.10.0 发布

    文章目录 互联网快讯 程序员专属 Github 每日精选 CSDN 社区优质博文精选 互联网快讯 1.360 周鸿祎:用户对个人信息使用应享有知情权.选择权 近日,360 集团董事长兼 CEO 周鸿祎 ...

  7. docker 随笔记录

    1.docker 固定网络ip地址,启动 Docker的时候,用 --network 参数,可以指定网络类型 eg:docker run -itd --name test1 --network bri ...

  8. 我的docker随笔25:一个测试用的镜像制作过程

    本文记录制作一个镜像的过程,先构建可运行静态程序的镜像,以此为基础,构建一个golang语言编写的web服务器,可获取容器的主机.内核版本等信息.该镜像可用于 k8s 和 KubeEdge 群集测试. ...

  9. 我的docker随笔13:docker源码编译进阶篇

    本文与前面文章相同,但多了一些分析的步骤. 一.环境搭建 docker的编译,需要在宿主机预先安装docker软件.因为编译docker的源码时,会构建一个docker镜像并运行,在这个容器里面进行b ...

最新文章

  1. 详解亚马逊:物流为何是电商命脉
  2. 32位系统和64位系统的选择
  3. [YTU]_2639 ( 改错题:类中私有成员的访问)
  4. APUE(7)---进程环境
  5. .NET6之MiniAPI(十三):健康检查
  6. 培养宝贝惊人记忆力10妙招哦
  7. Menelaus定理与证明
  8. Python使用多线程搜索指定范围内的所有素数
  9. OO4O的session残留问题
  10. java面经2020
  11. shell换行合并多个文件_shell两个文件去重的多种姿势
  12. C语言也能干大事第七节(如鹏基础)
  13. java mongodb avg_Java-mongodb-AggregationOutput(分组、统计)
  14. 使用shopnc发送qq邮件遇到的坑
  15. 杭电1069 Monkey and Banana
  16. OpenCV进阶--图像颜色空间
  17. 地铁框架保护的原理_浅析地铁直流框架保护原理及应急处置
  18. 音视频开发成长之路与音视频知识总结
  19. 软件工程-耦合与内聚简单实例
  20. IBM SPSS Statistics 26.0 for Linux Ubuntu 英/中文安装教程

热门文章

  1. snmp协议_SNMP开发和使用
  2. 一个程序员的成长的六个阶段(转帖)
  3. 瑞士信贷上调苹果目标价至168美元
  4. 《王者荣耀》回应故障:3个工作日内补发排位赛星积分丢失
  5. 特斯拉:在行驶20万英里后 其电动汽车电池仍有90%容量
  6. 俞敏洪辟谣“周末暑假不能上课”:人生已经不易 为何还要捅刀
  7. 屏幕分析师确认两款iPhone 13将采用LTPO屏幕 支持120Hz刷新率
  8. 买iPhone将可能只有盒子了?网友:库克账号多少,我直接打钱吧?
  9. 因“5毛钱”惹众怒的丰巢:我错了,下次还敢
  10. 格力:今日投放12万只格力口罩 明日起增至16万只