如何开启Docker远程服务、并创建一个docker容器中执行docker远程服务,并且命令不用添加-H,用户无感知使用的是远程docker服务

一、说明

工作中我们需要k8s集群中使用一些docker服务,或者是利用一个docker容器,做一些镜像的拉取、制作、上传。如果使用集群的docker,长时间会积累大量的废弃镜像,占用磁盘,导致集群无法正常使用。另一方面,用户可能利用docker做一些违规操作,直接把k8s集群服务搞挂。
为了避免以上问题,我们使用远程docker服务,这样让docker服务于集群完全脱离。制作一个docker服务镜像,远程连接到远程的docker服务。

通常我们远程连接docker服务,命令中需要加 -h 连接远程机器的docker。但是,每次加-h 很不友好,如何不加-h 也可远程连接docker服务呢?就像使用本地docker一样使用远程docker。做法如下:

二、 远程机器docker开启远程docker服务

按照如下配置
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H unix://var/run/docker.sock -H tcp://0.0.0.0:2375 #ExecStart开头的行换成这个
在这里插入图片描述

重启docker服务
systemctl daemon-reload
service docker restart

三、 制作docker镜像

也就是制作一个centons或者Ubuntu镜像,启动后安装docker环境。当然也可以使用dockerfile去制作。

下面是我制作好的centos镜像并里面安装了docker。
在这里插入图片描述

1、进入容器

docker exec -it d52ee6cc718b /bin/bash
在这里插入图片描述

2、查看docker文件位置
在这里插入图片描述

将/usr/bin中传入以下三个文件
docker (这个文件需要修改添加如下内容) 是文件docker客户端执行命令前需要添加的参数

在这里插入图片描述

/usr/bin/docker-client -H 192.168.0.58 $@
192.168.0.58 远程docker服务器的IP地址
/usr/bin/docker-client:传入的docker-client路径

docker-client(直接传入不用做修改) docker客户端
docker-entrypoint.sh(直接传入不用做修改) 功能覆盖镜像默认命令,本来远程执行docker需要添加-h 远程docekr服务器ip,通过这个脚本,就会把这个命令重写,用户无感知,在容器中使用远程docker服务,也就是执行docker命令就好像是执行本地docker一样。其实是用的远程的docker
在这里插入图片描述

docker :安装了docker后 /usr/bin/路径下本身就有,把内容修改为上面的即可

docker-client 、docker-entrypoint.sh直接加进去:下载地址:
docker-client 、docker-entrypoint.sh下载

3、创建新的docker镜像
将上面三个文件传入容器中的docker所在路径后,将这个容器重新打一个镜像,这个镜像就包含了支持远程构建镜像的功能。无论在什么地方启动这个镜像并使用docker服务,其实都是使用的远程机器的docker服务。(前提是要与远程docker服务器要通)

退出容器
查看容器
docker ps
将以上容器重新创建为一个新的镜像。
docker commit -a “peishunwu” -m “add docker and tools” d5884406725a dockerubuntu
查看新创建的镜像
docker images

新的镜像就具备了,启动容器后执行docker命令其实是在远程docker(192.168.0.58)服务器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值