DELPHI开始支持LINUX DOCKER
DELPHI开始支持LINUX DOCKER
本方翻译自Marco Cantu的文章。
在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级容器而不是物理机器或虚拟机已经变得越来越普遍,因为这允许更大的灵活性(在测试方面),更好地重建相同的执行环境,以及更大的可扩展性。
随着10.3.3版本的发布,Embarcadero正式开始支持将通用Linux应用程序部署到Docker容器,特别是支持部署到RAD服务器。
在这篇博客文章中,我将介绍Docker和Docker Hub,以及如何轻松地开始将Linux应用程序部署到Docker。在第二篇博客文章中,我将特别关注RAD服务器的部署。我们也将很快有一份关于这个主题的更详细的白皮书。
什么是Docker
Docker是一个操作系统级的虚拟化环境,允许在容器文件中打包和交付软件包。容器文件由Docker引擎执行,多个容器可以在同一个Linux安装上并排运行。每个容器中都有一个操作系统级的虚拟化环境。 容器比虚拟机更轻,因为它们由Docker引擎运行。容器是通过将一组称为Dockerfile的指令构建到容器映像中来创建的。容器图像随后在Docker引擎上执行。生成步骤和运行步骤都可以采用许多参数来配置特定的生成或运行容器映像。 此外,现有的容器映像可以用作内部的起点,它允许您在现有容器映像的功能的基础上添加新功能。容器和docker的信息来源很多,一个好的起点是https://www.docker.com/。
什么是Docker Hub?
Docker提供一项服务,允许开发者和发布者向公众或他们的团队分发Docker图片。这项服务被称为Docker Hub,它为用户提供了一种使用特定Docker图像所在存储库的方法。Docker存储库还允许Docker图像版本控制。Docker Hub包含官方图片,比如Ubuntu图片,可以作为很多用户的起点。
RAD Studio Docker容器
RAD Studio Docker容器paserver、pa radserver和pa radserver ib可以直接从DockerHub获得,也可以作为Dockerfiles(在GitHub上)和其他助手实用程序。当使用Docker从DockerHub中提取容器时,必须在容器名称前面加上组织名称,例如radstudio/pa Server、radstudio/pa radserver和radstudio/pa-radserver-ib。对于这篇博客文章,我将开始关注第一篇文章radstudio/paserver,它不包括RAD Server。 Docker容器有许多不同的参数,可以在启动实例时传递给Docker引擎。另外,在构建和运行Docker镜像时,可以定义自定义的构建和运行参数。我们提供的脚本中包含了许多自定义参数,例如PAServer的密码。 Docker容器实例可以在前台运行,您可以在前台与实例中运行的应用程序交互,也可以在后台分离运行,后者的行为类似于服务。 Docker容器实例默认情况下不会在运行之间存储对实例的任何更改(它们是临时映像)。但是,您可以在Docker实例中设置一个持久卷,它将存储Docker容器实例运行之间的更改。Docker实例中的目录可以装载到卷上,并且在Docker实例运行期间,该目录中所做的任何更改都会在卷上持久。
如何在Linux上安装Docker
Docker系统可以通过多种方式安装。安装Docker的一种方法是使用Ubuntu操作系统中包含的APT包管理器。要使用APT安装Docker,只需使用sudo或超级用户帐户以提升的权限运行APT install命令。
----------
#如果使用sudo sudo apt安装docker.io
#如果使用超级用户帐户 apt安装docker.io
----------
PAServer Docker映像
PAServer Docker映像使用Ubuntu:Bionic作为基础映像,并在此基础上构建包括PAServer工具及其功能的映像PAServer工具是从Embarcadero服务器下载的。此图像包含PAServer及其所有依赖项,以及用于使用BroadwayD的GTK+框架(FMXLinux库的一个特性部分,用于在Linux上构建ui,该库随Delphi免费提供)。BroadwayD可以通过HTML5和websockets在web上显示GTK+应用程序。将这两个工具放在同一个Docker容器上,允许开发人员使用PAServer部署控制台和基于图形用户界面的应用程序,并通过BroadwayD服务器通过web浏览器查看图形用户界面应用程序。 此图像有几个参数,包括 PAServer密码,可以设置为build参数或run参数 是否要在前台交互模式(-it)或分离模式(-d)下运行 外部PAServer端口(即映射到容器中PAServer端口的主机端口)和broadwayd端口重新映射 PAServer的默认密码设置为'embtdocker' 这是一个如何下载图像并使用几个参数启动图像的示例:
----------
docker pull radstudio/paserver公司
docker run-it-e PA_SERVER_PASSWORD=securepass-p 64211:64211-p 8082:8082 radstudio/paserver
----------
此时,您可以通过docker映像的主机IP和RAD Studio IDE中的端口地址来引用docker映像,并通过docker映像托管的PAServer部署和运行Linux应用程序。因此,Delphi应用程序将在docker下运行。
GitHub上的Dockerfile
不用从docker hub中提取图像,您可以使用我们已经构建并在GitHub上提供的脚本创建一个自定义图像。PAServer Dockerfile包含Docker在构建时用于创建Docker映像的指令。Dockerfile依赖于从Embarcadero下载的特定版本的PAServer,可从以下网址获得: https://github.com/Embarcadero/paserver-docker 更多即将到来 在下一篇博文中,我们将继续关注通过docker部署RAD服务器,这是Embarcadero支持docker容器的关键原因。
----------------------------------------------
学位越高,对最卑微的人的尊重就越大!
DELPHI开始支持LINUX DOCKER的更多相关文章
- 【转】DELPHI开始支持LINUX DOCKER
这是咏南翻译Marco Cantu的文章. 在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级DOCKER而不是物理机器或虚拟机已经变得越来越普遍,因为这允许更大的灵活性(在 ...
- 【转】在 Delphi 中创建 Linux 守护程序(服务进程)
转自波哥的译文,必须转过来,太有价值了!原文地址在这里.以下为原文内容: 本文译自 原文链接,语言上做了精炼和排版的变更,以便更简洁明了. Delphi 开始支持 Linux 平台为 Delphi 开 ...
- Linux Docker虚拟机入门实战讲解
什么是Docker? Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目 前已有多个相关项目,逐渐形成了围绕 ...
- linux docker .net core 从建立网站到预览
docker的安装在网上一搜一大把,windows安装的就是exe双击,linux安装需要执行语句 ps:需要准备xftp.xshell.vs 2019.linux服务器.docker账号密码 例如: ...
- Delphi XE5 支持的Android 版本
Delphi XE5 已经支持Android应用开发. 那XE5支持Android的哪些版本呢?Delphi编译的APP能部署到Gingerbread (2.3.3-2.3.7), Ice Crea ...
- 【转载】Visual Studio 2015 for Linux更好地支持Linux下的开发
原文:Visual Studio 2015 for Linux更好地支持Linux下的开发 英文原文:Targeting Linux Made Easier in Visual Studio 2015 ...
- C#获取远程计算机硬件信息实例(支持linux和windows)
原文:C#获取远程计算机硬件信息实例(支持linux和windows) 网上关于WMI的资料很多,但一直没有比较全的属性介绍.今天通过反射把所有属性都给弄出来了. 关于WMI的代码就不多说了. ...
- Win10 & Linux Docker 安装使用
Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 一.Windows Docker 安装 1.安装 需要的条件为: 64bit Windows 10,开启Hype ...
- .NET Core 图片操作在 Linux/Docker 下的坑
一.前言 .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image.Bitmap 等类型.对于图片的操作在我们开发中很常见,比如:生成验证码. ...
随机推荐
- 打造属于你的提供者(Provider = Strategy + Factory Method) 设计模式 - Provider Pattern(提供者模式)
打造属于你的提供者(Provider = Strategy + Factory Method) 1.1.1 摘要 在日常系统设计中,我们也许听说过提供者模式,甚至几乎每天都在使用它,在.NET F ...
- MySQL与Oracle的隔离级别
一.事务和隔离级别 事务的概念:事务是把对数据库的一系列操作都看做一个整体,要么全部成功,要么全部失败,利用事务我们可以保证数据库的完整性,事务具有原子性. 隔离级别:隔离级别定义了事务与事务之间的隔 ...
- .Net core 使用swagger进行Api管理
上次我们讲过如何在swagger上隐藏接口,众所周知,swagger是一个强大的api文档工具,可以帮助我们记录文档并且测试接口,也是一个可视化操作接口的工具. 那么如果我们写的接口非常多的时候怎么办 ...
- 爬虫之selenium模块;无头浏览器的使用
一,案例 爬取站长素材中的图片:http://sc.chinaz.com/tupian/gudianmeinvtupian.html import requests from lxml import ...
- Redis SCAN命令实现有限保证的原理
SCAN命令可以为用户保证:从完整遍历开始直到完整遍历结束期间,一直存在于数据集内的所有元素都会被完整遍历返回,但是同一个元素可能会被返回多次.如果一个元素是在迭代过程中被添加到数据集的,又或者是在迭 ...
- 转:spring mvc 设置@Scope("prototype")
spring中bean的scope属性,有如下5种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例prototype表示每次获得bea ...
- linux常见依赖
1. 搭建LNMP环境用到的依赖包 yum -y install gcc gcc-c++ libxml2 libxml2-devel openssl openssl-devel curl libcur ...
- SQL注入流程图
http://127.0.0.1/sqli-labs-master/Less-2/index.php? id=1 1 输入单引号 ‘ 进行检验是否存在输入 http://12 ...
- kuangbin专题专题四 Wormholes POJ - 3259
题目链接:https://vjudge.net/problem/POJ-3259 思路:求有无负环,起点随意选就可以,因为目的只是找出有没有负环,有了负环就可以让时间一直回退,那么一定能回到当初,这里 ...
- Go语言 - 包(package)
在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的.本文介绍了Go语言中如何定义包.如何导出包的内容及如何导入其他包. Go语言的包(package) 包介绍 包( ...