这是咏南翻译Marco Cantu的文章。

在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级DOCKER而不是物理机器或虚拟机已经变得越来越普遍,因为这允许更大的灵活性(在测试方面),更好地重建相同的执行环境,以及更大的可扩展性。

随着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系统可以通过多种方式进行安装,其中之一是使用Ubuntu操作系统中包含的APT包管理器来安装,要使用APT安装Docker,只需使用sudo或超级用户帐户以提升的权限运行APT install命令。

----------
#if using sudo
sudo apt install docker.io

#if using super user account
apt install 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

    DELPHI开始支持LINUX DOCKER 本方翻译自Marco Cantu的文章. 在过去的几年中,将服务器端解决方案(实际上是任何类型的应用程序)部署到轻量级容器而不是物理机器或虚拟机已经变得越 ...

  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. PAT 甲级 1047 Student List for Course (25 分)(cout超时,string scanf printf注意点,字符串哈希反哈希)

    1047 Student List for Course (25 分)   Zhejiang University has 40,000 students and provides 2,500 cou ...

  2. 定时杀死warn进程

    6 6 * * * /root/wz/mysqlRestart.sh    #MySQL restart7 6 * * * /bin/sh /home/warn/kill_.sh8 6 * * * / ...

  3. .net mvc网站集成adfs(ws-fed协议)

    网站地址(本地开发测试):https://localhost:9000 第一步,adfs配置 配置要声明颁发策略(adfs要发送给网站的声明) 选择刚添加的依赖方信任,编辑颁发策略 配置完成 第二步, ...

  4. iOS笔试题01

    1. #import 跟#include.@class有什么区别?#import<> 跟 #import”"又什么区别? 1> #import和#include都能完整地包 ...

  5. 印象笔记·剪藏 Chrome插件

    印象笔记·剪藏 Chrome插件 链接:https://pan.baidu.com/s/10nzrSk_3sLkOI29MIEPEBw  密码:p8n8

  6. Spring 使用日志

    1. spring boot项目默认使用什么技术处理日志? 实例代码 log.debug("===============================用户信息:", user) ...

  7. Codis的安装配置

    codis是分布式redis解决方案 centos系统下安装codis需要安装相关的依赖,将图中的依赖上传至centos系统中 依次进行安装: 一.go环境的安装配置 解压到install目录下: . ...

  8. Hbuider APP打包流程

      1,下载HBuilder,注册并登陆.首先打开“文件”-“新建”-“移动APP”,输入“应用名称”,“位置”可以根据需要自己选择即可,“选择模板”建议选择空模板: 2,新建完成后, 在项目管理器会 ...

  9. 如何使用U盘给电脑安装CentOS系统

    准备工具:1.8G左右U盘;2.最新版UltraISO;3.CentOS ISO镜像; 上面的步骤做好之后就是将镜像刻录到U盘中,这里跟Windows系统刻录U盘的步骤是一样的,就不再多赘述了. 假如 ...

  10. mysql-系统表的使用

    https://blog.csdn.net/wind520/article/details/38728655