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的更多相关文章

  1. 【转】DELPHI开始支持LINUX DOCKER

    这是咏南翻译Marco Cantu的文章. 在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级DOCKER而不是物理机器或虚拟机已经变得越来越普遍,因为这允许更大的灵活性(在 ...

  2. 【转】在 Delphi 中创建 Linux 守护程序(服务进程)

    转自波哥的译文,必须转过来,太有价值了!原文地址在这里.以下为原文内容: 本文译自 原文链接,语言上做了精炼和排版的变更,以便更简洁明了. Delphi 开始支持 Linux 平台为 Delphi 开 ...

  3. Linux Docker虚拟机入门实战讲解

    什么是Docker? Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司.Docker自开源后受到广泛的关注和讨论,目 前已有多个相关项目,逐渐形成了围绕 ...

  4. linux docker .net core 从建立网站到预览

    docker的安装在网上一搜一大把,windows安装的就是exe双击,linux安装需要执行语句 ps:需要准备xftp.xshell.vs 2019.linux服务器.docker账号密码 例如: ...

  5. Delphi XE5 支持的Android 版本

    Delphi XE5 已经支持Android应用开发.  那XE5支持Android的哪些版本呢?Delphi编译的APP能部署到Gingerbread (2.3.3-2.3.7), Ice Crea ...

  6. 【转载】Visual Studio 2015 for Linux更好地支持Linux下的开发

    原文:Visual Studio 2015 for Linux更好地支持Linux下的开发 英文原文:Targeting Linux Made Easier in Visual Studio 2015 ...

  7. C#获取远程计算机硬件信息实例(支持linux和windows)

    原文:C#获取远程计算机硬件信息实例(支持linux和windows) 网上关于WMI的资料很多,但一直没有比较全的属性介绍.今天通过反射把所有属性都给弄出来了.   关于WMI的代码就不多说了.   ...

  8. Win10 & Linux Docker 安装使用

    Docker最近推出了可以运行在Win10和Mac上的稳定版本,让我们赶紧来体验一下. 一.Windows Docker 安装 1.安装 需要的条件为: 64bit Windows 10,开启Hype ...

  9. .NET Core 图片操作在 Linux/Docker 下的坑

    一.前言 .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image.Bitmap 等类型.对于图片的操作在我们开发中很常见,比如:生成验证码. ...

随机推荐

  1. selenium.获取浏览器大小、设置浏览器位置、最大化浏览器

    此篇博客学习控制浏览器的api,分别有: get_window_size() 获取浏览器大小 set_window_size() 设置浏览器位置 get_window_position() 获取浏览器 ...

  2. Python之路(第四十二篇)线程相关的其他方法、join()、Thread类的start()和run()方法的区别、守护线程

    一.线程相关的其他方法 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. ​ threadin ...

  3. python爬取站长之家植物图片

    from lxml import etree from urllib import request import urllib.parse import time import os def hand ...

  4. The 2019 Asia Yinchuan First Round Online Programming F. Moving On

    t题目链接:https://nanti.jisuanke.com/t/41290 思路:题目意思很容易想到floyd,但是由于危险度的限制,我们该怎么跑floyd呢. 一开始理解错题目了,以为u-&g ...

  5. httprunner学习5-参数化与数据驱动

    前言 参数化是自动化测试离不开的话题,httprunner里面只要把上一篇声明变量学会了,参数化也就自然会了. 不同的地方在于声明变量时对应值只有一个,参数化是多个值,存放在list里面. httpr ...

  6. ansible(二)

    软件相关模块 yum rpm和yum的区别 rpm:redhat package manager yum可以解决依赖关系 yum源配置 [epel] name=Extra Packages - $ba ...

  7. C#中的事件的订阅与发布

    认识发布者/订阅者模式 发布者定义一系列事件,并提供一个注册方法: 订阅者向发布者注册自己的事件处理逻辑,供一个可被回调的方法,也就是事件处理程序:当发布者的事件被触发的时候,订阅者将通过回调函数得到 ...

  8. mysql-xtrabackup备份恢复

    1.xtrabackup的安装 8.0版本-支持mysql8 wget https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Perc ...

  9. 转载>>去除inline-block元素间间距的N种方法《重》

    一.现象描述 真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子: <input /> <input type="su ...

  10. secureCRT无操作自动登出时间修改(亲测可用)

    转自:http://blog.sina.com.cn/s/blog_6bcf42010102vlt9.html secureCRT连接机器经常会因为一段时间无操作就退出了,提示timed out wa ...