运行镜像步骤
从URLOS-1.4.1版本开始允许直接运行Docker镜像,用户可以使用任意Docker镜像仓库(包括Docker Hub)的镜像直接在URLOS上运行服务,并自动添加为URLOS应用供用户快速部署。
1、基础信息
在此步骤中,需要填写的项目有服务名称,即启动之后的容器名称,选择容器运行在哪台主机上,以及端口映射(如无需映射,则可不填):
2、镜像地址
如果镜像为Docker官方镜像,可以直接使用“镜像名:tag”的格式,如果非Docker官方镜像,请使用完整地址,如:docker.io/username/nginx:1.0,如果是私有镜像,请填写用户名与密码:
3、功能开关
在此步骤中可以开启应用相关的功能,推荐打开挂载存储目录、允许快照备份、使用主控时间、全局网络:
[!NOTE]
各项功能说明
允许特权运行:允许以特权运行容器,即设置“docker run”的“--privileged”参数(注意:该选项可能存在安全隐患,请慎重选择!)。
挂载存储目录:从母机挂载存储目录(请在集群中配置存储目录),用于存储数据。注:单机应用挂载本地存储目录的子目录,集群应用挂载NFS存储目录的子目录。
容器只读:禁止向容器内部写数据,即设置“docker run”的“--read-only”参数(注意:2. 挂载的存储目录不受影响)。
允许快照备份:勾选则允许执行快照备份(仅挂载了本地存储时有效)。
使用主控时间:将容器内部的时间与URLOS的时间保持一致。
挂载SSL证书目录:从母机挂载SSL证书目录,以便在宿主机统一更新SSL的“客户端”证书文件。
全局网络:启动容器时加入全局网络(名称为“oooooo”的容器网络),便于与其它已加入全局网络的应用进行内网通信。
4、运行参数
在该步骤中,可配置额外挂载参数
和额外启动参数
额外挂载参数:可从母机挂载除存储目录外的其它目录到容器;
额外启动参数:是以docker run方式运行容器时,附加的额外参数,如:--add-host a.com:192.168.0.1、-v /data/www:/data/www等。
在实际应用中,将母机目录挂载到容器中,可以通过额外挂载参数实现,也可以通过额外启动参数的-v
实现。
5、脚本设置
安装脚本:安装或初始化软件的SHELL脚本,支持换行和条件判断,如:apt-get update -y && apt-get install nginx; mkdir -p /run/nginx/
sed -i 's~//.*.ubuntu.com~//mirrors.aliyun.com~' /etc/apt/sources.list
apt update -y
apt install nginx -y
启动脚本:用于启动容器内部的应用,如:service nginx start(如镜像中已经存在启动脚本,此处可留空)
nginx
状态脚本:用于检查应用启动状态的脚本,当shell变量statusScriptResult的值为1时,则表示启动正常;状态脚本共执行60次,每2秒执行1次(可使用sleep修改执行间隔时间)
(ps -ef|grep "nginx"|grep "master process"|grep -v "grep") && statusScriptResult=1
监控脚本:循环检查容器内部程序的状态,可使用{w:statusScript:w}直接引用状态脚本,默认每1秒钟检查1次,当监控结果连续3次发生错误时便重启容器,如:sleep 3 && service mysql status || exit 1;
{w:statusScript:w}
[ "$statusScriptResult" != 1 ] && exit 1
退出脚本:用于关闭容器时退出应用程序的脚本
nginx -s stop
6、环境变量
当所运行的镜像含有可使用的环境变量时,可在此步骤中指定环境变量的值,如运行mariadb镜像时,可使用环境变量MYSQL_ROOT_PASSWORD
来为数据库root用户设置密码,具体内容请自行查看镜像的相关文档。
{"MYSQL_ROOT_PASSWORD":"Admin888"}
7、保存应用
在此步骤中用来设置应用的应用名称和版本号,此步骤可忽略。
8、其他
当运行某些特殊镜像时,如果容器内部的软件程序禁止使用root用户运行容器(如:MySQL),请指定运行容器的用户名,否则请留空!
更多运行镜像的实例,请参见 运行Docker镜像