运行Docker镜像
从URLOS-1.4.1版本开始允许直接运行Docker镜像,用户可以使用任意Docker镜像仓库(包括Docker Hub)的镜像直接在URLOS上运行服务,并自动添加为URLOS应用供用户快速部署。
[!TIP]
注意:在ARM主机上运行镜像时,请采用支持ARM架构的镜像!
本节将用以下实例来讲解如何使用运行镜像功能。
实例1:拉取基础镜像安装Nginx并运行网站服务
实例2:拉取数据库镜像直接运行数据库服务
实例3:运行Ghost镜像并将应用导出给其他用户
实例1:拉取基础镜像安装Nginx并运行网站服务
先从Docker Hub拉取ubuntu:20.04镜像,安装Nginx软件,最后将其运行起来:
首先,点击左侧菜单中的运行镜像:
填写服务名称“nginx001”,选择在哪台主机上运行,将宿主机8080端口映射给容器的80端口:
填写镜像地址“ubuntu:20.04”(如果是自己的仓库需填写完整地址,如docker.io/username/ubuntu:20.04):
勾选挂载存储目录、允许快照备份、使用主控时间、挂载SSL证书目录、全局网络:
填写安装脚本:
# 修改更新源为阿里云
sed -i 's~//.*.ubuntu.com~//mirrors.aliyun.com~' /etc/apt/sources.list
# 更新
apt update -y
# 安装nginx
apt install nginx -y
填写启动脚本:
# 启动nginx
nginx
填写退出脚本:
nginx -s stop
填写应用名称和版本号:
最后,点击提交按钮即可。
nginx001服务开始自动部署了,同时在应用开发动添加了一个应用:
在浏览器中可正常访问该服务:
[!NOTE]
URLOS可以从任意Docker镜像仓库中拉取镜像直接运行服务,并且可快速制作成URLOS应用,极大方便了软件安装与分发。
实例2:拉取数据库镜像直接运行数据库服务
从Docker Hub拉取MariaDB镜像,运行数据库服务。
首先,点击左侧菜单中的运行镜像:
填写服务名称“mariadb001”,选择在哪台主机上运行,端口号暂不设置:
填写镜像地址“mariadb:latest”(如果是自己的仓库需填写完整地址,如docker.io/username/mariadb:latest):
开关勾选挂载存储目录、允许快照备份、使用主控时间、挂载SSL证书目录、全局网络:
在运行参数中配置额外挂载目录,将数据库文件挂载到宿主机,防止容器重启后数据丢失:
[!NOTE]
注意格式,冒号前是宿主机目录,后面为容器目录,宿主机目录不带"
/
"时,默认为当前服务的数据目录下,例如当前服务为mariadb001
,如果填写格式为mysql:/var/lib/mysql:rw
,则表示将宿主机目录/data/mounts/mariadb001/mysql
挂载到容器目录/var/lib/mysql
为例设置数据库密码,这里需要使用环境变量,{"MYSQL_ROOT_PASSWORD":"Admin888"}
,Json格式:
填写应用名称和版本号:
在其他设置中填写运行用户,设置运行用户的原因是mysql禁止使用root用户运行容器:
最后,点击提交按钮即可。
如何验证MariaDB服务是否启动成功。首先进入容器查看进程,如图,数据库进程已经在运行,然后也可正常登录数据库,说明服务已经成功运行。
实例3:运行Ghost镜像并将应用导出给其他用户
Ghost镜像:https://hub.docker.com/_/ghost
先阅读Ghost官方给的相关说明,发现如果要正常运行Ghost,须设置以下几个内容:
端口号映射:需映射容器内部端口2368
目录挂载:将容器内部目录/var/lib/ghost/content
挂载到宿主机
使用域名访问:需传递环境变量url
运行Ghost镜像
掌握以上信息之后,开始运行镜像,首先命名服务名称为myghostblog
,端口填写为80:2368
。
[!NOTE]
由于运行镜像没有使用反向代理,所以请勿直接使用80端口,本例中只是为了方便演示而使用80端口。
在文章后面的应用调优中介绍了如何开启反向代理。
镜像地址填ghost:1-alpine
:
开关勾选挂载存储目录、允许快照备份、使用主控时间、挂载SSL证书目录、全局网络:
在额外挂载参数中填写data/www:/var/lib/ghost/content:rw
,将Ghost数据目录挂载到当前服务目录中的data/www:
在环境变量中填写{"url":"http://www.myghostblog.com"}
,格式为json格式,注意替换成自己的域名:
最后,点击提交按钮,等待服务部署。
部署完成后,在浏览器中打开http://www.myghostblog.com,可正常访问。
访问http://www.myghostblog.com/ghost可进行初始化设置:
初始化完成后,进入ghost后台,一切正常:
应用调优并导出
在URLOS运行镜像之后,会自动添加一个URLOS应用,后期我们可以直接安装这个应用就能部署Ghost了,也可以将Ghost应用导出给其他用户使用,分享非常方便!既然是应用,我们当然希望它更加易于安装和使用,我们只需对它进行一些微调即可。
在Ghots镜像成功运行之后,在应用开发以得到一个名为myghostblog-app
的应用,点击修改:
第一个优化
既然Ghots是一个网站应用,我们希望它显示在服务菜单下的网站列表中:
那么只需在标签中填写type__website
即可
第二个优化
把默认生成的环境变量文字改成访问网址,这样能方便以后的安装和使用:
改完后点击提交按钮即可。
打开“服务 -> 网站”菜单,看到Ghost博客正常的显示在这里了,并且网址也显示了出来。
进入修改并部署,看到访问网址也正确显示了
第三个优化
选择启用反向代理,使用反向代理后,就可以正常使用80端口号了。
在扩展设置中选择网站环境基础插件,把服务表单步骤改为以下内容:
{
"2": {
"cn": "网站",
"en": "Website"
},
"F": {
"cn": "上传下载",
"en": "File Transfer"
},
"E": {
"cn": "访问网址",
"en": "Envionment variables"
}
}
以上选择的插件和开启的网站和上传下载两个菜单,可让应用具备自动申请/续约SSL证书和SFTP等功能。
最后,我们再检查一下网站数据是否已经挂载到宿主机目录:
Ok,在确认无误之后,将应用导出:
导出文件为文本格式,将其发给其他用户导入URLOS即可。导入应用的方法请参见 导入应用