【问题原因】docker运行命令中包含了构建镜像的命令
【解决办法】用传统命令启动容器,基于获取的 iServer 镜像,运行一个Docker容器 iserver1。
如您是从 dockerhub 下载的镜像,执行如下命令:
docker run --name iserver1 -d -p 8090:8090 -e SUPERMAP_JAVA_OPTS="-Xms256m -Xmx4096m -Xss512k" -v `pwd`/my_opts:/opt/iserverOPTs supermap/iserver
如您是从阿里云下载的镜像,执行如下命令:
docker run --name iserver1 -d -p 8090:8090 -v `pwd`/my_opts:/opt/iserverOPTs registry.cn-beijing.aliyuncs.com/supermap/iserver
其中:
--name 表示为容器指定一个名称。--name iserver1表示指定容器名称为 iserver1;
-d 表示后台运行容器,并返回容器ID;
-p 指定端口映射,格式为:主机(宿主)端口:容器端口。-p 8090:8090 表示指定映射的主机端口(对外暴露端口)为8090,容器端口也为8090;
iServer_JAVA_OPTS 表示 iServer 的 Java 内存配置;
-v 表示映射数据路径,格式为:主机(宿主)路径:容器路径。搭建集群时,使用此参数后可在主节点上发布服务。如果主节点不需要发布服务,则无需使用 -v 参数;
supermap/iserver、registry.cn-beijing.aliyuncs.com/supermap/iserver 表示对应的镜像名称。如您是获取的离线镜像,则此处应输入对应的镜像名称。您可以通过以下指令,查看查看已有本地仓库已有的镜像信息:
docker images