Docker Compose - 向远程主机部署服务
问题描述
通常,我们本地编写 docker-compose.yml 文件,然后运行测试。但是,我们需要在 arm64 环境中进行测试,无法在本地直接运行测试。
我们希望可以在本地编写,然后本地使用 docker-compose up 直接在远程 arm 主机上运行测试。
该笔记将介绍:在本地运行 docker-compose 命令,但是在远程主机中启动服务的方法。
方法一、在上传后执行(传统方法)
在传统方法中,我们需要将 docker-compose.yaml 及相关文件,上传到远程主机,然后执行 docker-compose up 启动服务。
这里不再赘述……
方法二、使用 DOCKER_HOST 变量
使用 tcp 协议
第一步、修改 Docker 服务配置,使其监听 TCP/2375 端口(不再赘述)
第二步、通过 DOCKER_HOST 变量指定远程服务,比如 DOCKER_HOST="tcp://0.0.0.0:2375" 指定远程服务:
DOCKER_HOST="tcp://192.168.10.143:2375" docker-compose up -d docker-compose --host "tcp://192.168.10.143:2375" up -d
使用 ssh 协议(推荐)
我们想使用 TCP 协议(即我们不会改变 docker 配置,使其监听 TCP 端口),而是使用 SSH 协议:
DOCKER_HOST="ssh://root@192.168.10.143" docker-compose up -d docker-compose --host "ssh://root@192.168.10.143" up -d
使用 SSH 协议需要注意以下问题:
1)从 Docker 18.09 开始支持 SSH 协议;
2)如果使用 SSH KEY 连接主机,需要 ssh-add -k /path/to/key-file 命令添加密钥,因为 docker-compose 不支持命令行指定密钥,也不会解析 .ssh/config 文件。
该方法的局限性
虽然是远程执行,但本质上还是将命令发送到 Docker 守护进程,也就是说本地配置文件不会发送到远程主机。即类似于 volumes: ["./config:/config"] 指令不会生效,因为在 config 下的配置文件不会发送到远程主机。
方法三、使用 Docker Context 命令
在 Docker 19.03.0 中,引入 Docker Context 支持。Docker Engine release notes | Docker Documentation
第一步、创建并查看上下文:
docker context create remote ‐‐docker "host=ssh://user@remotemachine" docker context ls
第二步、使用上下文操作:
docker-compose ‐‐context remote up -d
该方法的局限性
在本质上「该方法」与「方法二」类似,只是不再在命令行中指定 Docker 服务信息,而是换成上下文的形式。并且该方法也具有方法二的局限性。
Docker Compose - 向远程主机部署服务的更多相关文章
- Docker Compose编排工具部署lnmp实践及理论(详细)
目录 一.理论概述 编排 部署 Compose原理 二.使用docker compose 部署lnmp 三.测试 四.总结 一.理论概述 Docker Compose是一个定义及运行多个Docker容 ...
- Docker Compose 项目打包部署
Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一 ...
- Docker Compose 部署前后端分离应用
部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...
- 使用Prometheus监控docker compose方式部署的ES
需求 收集 ES 的指标, 并进行展示和告警; 现状 ES 通过 docker compose 安装 所在环境的 K8S 集群有 Prometheus 和 AlertManager 及 Grafana ...
- Docker学习笔记之编写 Docker Compose 项目
0x00 概述 通过阅读之前的小节,相信大家对 Docker 在开发中的应用已经有了一定的了解.作为一款实用的软件,我们必须回归到实践中来,这样才能更好地理解 Docker 的实用逻辑和背后的原理.在 ...
- Docker学习笔记之使用 Docker Compose 管理容器
0x00 概述 通过之前的介绍,我们已经基本掌握了构建.运行容器的方法,但这还远远不够,由于 Docker 采用轻量级容器的设计,每个容器一般只运行一个软件,而目前绝大多数应用系统都绝不是一个软件所能 ...
- 一文掌握Docker Compose
目录 Docker Compose介绍 Docker Compose安装 Docker Compose基本示例 1.基本文件及目录设置 2.创建一个Dockerfile 3.通过docker-comp ...
- dotnet跨平台 - 使用Nginx+Docker Compose运行.NETCore项目
参考文档: https://docs.docker.com/install/linux/docker-ce/centos/ http://www.dockerinfo.net/document htt ...
- 使用 docker compose 安装 tidb
目标 : 单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群 前提条件: 1.centos版本在7.3 以上 2.安装git 3.安装docker Docker versi ...
- 使用 Docker Compose 快速构建 TiDB 集群
本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...
随机推荐
- 图片的穿透效果 -- pointer-events: none
使用场景:当我们需要选择上传文件的时候,图片把input输入框覆盖在上面,点击的时候不能出发input输入框所以要给图片设置穿透属性 : 具体代码: #image { position: fixed; ...
- 博客配套视频已上传至 B 站,欢迎关注
博客配套视频已上传至 B 站,欢迎关注+一键三连 链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 链接 ...
- Nuxt.js 应用中的 ready 事件钩子详解
title: Nuxt.js 应用中的 ready 事件钩子详解 date: 2024/10/12 updated: 2024/10/12 author: cmdragon excerpt: read ...
- Oracle中查看隐含参数的sql
select a.ksppinm "Parameter", a.ksppdesc "Description", b.ksppstvl "Session ...
- 我在大厂做 CR——为什么建议使用枚举来替换布尔值
使用枚举替换布尔值主要基于以下几个原因 ● 可读性 ● 可拓展性 ● 安全防控 可读性 我们会定义 boolean 类型(true 或 false)作为方法参数,虽然比较简洁,但有时候参数的含义往往不 ...
- 立即报名 | AI +Serverless Meetup 上海站 8 月 5 日等你相约!
自 2021 年 5 月后,KubeSphere 社区与上海的各位小伙伴已阔别两年,许久不见,甚是想念!2023 年 8 月 5 日,KubeSphere 社区将走进上海组织一场主题为 "A ...
- 利用jupyter进行股票数据分析
1.需求:股票分析 使用tushare包获取某股票的历史行情数据. 输出该股票所有收盘比开盘上涨3%以上的日期. 输出该股票所有开盘比前日收盘跌幅超过2%的日期. 假如我从2010年1月1日开始,每月 ...
- manim边做边学--通用三维坐标系
ThreeDAxes是Manim中用于创建三维坐标系的类. 在数学.物理和工程等领域,三维坐标系的绘制是非常重要的. ThreeDAxes使得用户能够在动画中直观地展示三维空间中的对象和关系,从而提高 ...
- 每日学学Java开发规范,代码格式(附阿里巴巴Java开发手册(终极版))
前言 每次去不同的公司,码不同的代码,适应不同的规范,经常被老大教育规范问题,我都有点走火入魔的感觉,还是要去看看阿里巴巴Java开发规范,从中熟悉一下,纠正自己,码出高效,码出质量. 想细看的可以去 ...
- 进程相互作用之信号量PV操作及其代码实现
目录 信号量PV操作 基本介绍 数据结构 解决进程互斥问题 解决进程同步问题 代码实现(以同步问题为例) 信号量PV操作 基本介绍 信号量(Semaphore):是表示资源的实体,是一个与队列有关的整 ...