我的docker随笔10:docker客户端使用其它主机的docker服务器
我们使用的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
的进程,从名称看出,这是一个守护进程(d
为daemon
的首字母),所以它就是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服务器相关推荐
- 我的docker随笔22:多域名同主机部署
需求: 只有一台云主机,但有多个不同域名网站,甚至还有二级域名.不能通过端口访问,即只有域名(二级域名).同时需要启用 https (到期自动更新证书). 网站内容为静态文件(当前暂定),docker ...
- Docker 1.10版本发布
本文讲的是Docker 1.10版本发布,[编者的话]Docker 1.10于二月初发布了,这是容器社区最近的重大事件,除了修复很多bug和功能增强之外,Docker1.10还引入了几个我们一直期待的 ...
- 2台主机的docker互相通信的方法
主机清单: 192.168.6.132 主机名 vm132 系统centos7 192.168.6.132 主机名 vm132 系统centos7 安装docker wget -O /etc/yum. ...
- 高级架构师_Docker_第2章_ Docker核心原理_ 第7节IDEA集成Docker
高级架构师_Docker_第2章_ Docker核心原理_ 第7节IDEA集成Docker 文章目录 高级架构师_Docker_第2章_ Docker核心原理_ 第7节IDEA集成Docker IDE ...
- 我的docker随笔19:Nextcloud部署
一.背景 Nextcloud是个人云存储服务,提供云存储服务,内置了Office文档.图片相册.日历联系人.两步验证.文件管理.RSS阅读等丰富的应用.可安装在本地或云主机,本文使用Docker进行部 ...
- 极客日报第 28 期:苹果为取代高通芯片,开始研发蜂窝网调制解调器;Docker 20.10.0 发布
文章目录 互联网快讯 程序员专属 Github 每日精选 CSDN 社区优质博文精选 互联网快讯 1.360 周鸿祎:用户对个人信息使用应享有知情权.选择权 近日,360 集团董事长兼 CEO 周鸿祎 ...
- docker 随笔记录
1.docker 固定网络ip地址,启动 Docker的时候,用 --network 参数,可以指定网络类型 eg:docker run -itd --name test1 --network bri ...
- 我的docker随笔25:一个测试用的镜像制作过程
本文记录制作一个镜像的过程,先构建可运行静态程序的镜像,以此为基础,构建一个golang语言编写的web服务器,可获取容器的主机.内核版本等信息.该镜像可用于 k8s 和 KubeEdge 群集测试. ...
- 我的docker随笔13:docker源码编译进阶篇
本文与前面文章相同,但多了一些分析的步骤. 一.环境搭建 docker的编译,需要在宿主机预先安装docker软件.因为编译docker的源码时,会构建一个docker镜像并运行,在这个容器里面进行b ...
最新文章
- 详解亚马逊:物流为何是电商命脉
- 32位系统和64位系统的选择
- [YTU]_2639 ( 改错题:类中私有成员的访问)
- APUE(7)---进程环境
- .NET6之MiniAPI(十三):健康检查
- 培养宝贝惊人记忆力10妙招哦
- Menelaus定理与证明
- Python使用多线程搜索指定范围内的所有素数
- OO4O的session残留问题
- java面经2020
- shell换行合并多个文件_shell两个文件去重的多种姿势
- C语言也能干大事第七节(如鹏基础)
- java mongodb avg_Java-mongodb-AggregationOutput(分组、统计)
- 使用shopnc发送qq邮件遇到的坑
- 杭电1069 Monkey and Banana
- OpenCV进阶--图像颜色空间
- 地铁框架保护的原理_浅析地铁直流框架保护原理及应急处置
- 音视频开发成长之路与音视频知识总结
- 软件工程-耦合与内聚简单实例
- IBM SPSS Statistics 26.0 for Linux Ubuntu 英/中文安装教程
热门文章
- snmp协议_SNMP开发和使用
- 一个程序员的成长的六个阶段(转帖)
- 瑞士信贷上调苹果目标价至168美元
- 《王者荣耀》回应故障:3个工作日内补发排位赛星积分丢失
- 特斯拉:在行驶20万英里后 其电动汽车电池仍有90%容量
- 俞敏洪辟谣“周末暑假不能上课”:人生已经不易 为何还要捅刀
- 屏幕分析师确认两款iPhone 13将采用LTPO屏幕 支持120Hz刷新率
- 买iPhone将可能只有盒子了?网友:库克账号多少,我直接打钱吧?
- 因“5毛钱”惹众怒的丰巢:我错了,下次还敢
- 格力:今日投放12万只格力口罩 明日起增至16万只