首页 / 浏览问题 / 云GIS / 问题详情
在docker中启动iservser 失败用
12EXP 2017年04月13日
用win版的docker来部署iserver,通过宿主机ip:8090访问iserver失败。

1个回答

启动容器时有映射端口么?

另外,win10的docker其实是用Hyper-V创建了个Linux虚拟机,这里有一篇介绍的博客:

http://blog.csdn.net/chinagissoft/article/details/53906601

1,780EXP 2017年04月13日
你好,按照博客上的方法我进入到了登录界面,可是提示输入的账号密码不正确,但是我在另一台电脑装在系统里的iserver同样的账号密码就能登录进去主界面。
是指登陆不进iServer么?
我们的docker镜像应该没设密码,初次使用要自己设置管理员用户名、密码的。
可以试试,先停iServer进入iServer/bin目录下,执行passwordreset.sh脚本,然后再启动iServer就会让你设置管理员用户名密码了,当然,得先docker attach这个容器,进容器里执行。
对,登录不进iserver,提示账号密码错误。是不是一个拥有许可的iserver账号密码只能在一自己的电脑上使用,不能在别的电脑上使用?还是因为docker里的iserver没有许可?
不是许可问题,执行passwordreset.sh脚本重置下密码

docker新手还是想请一下问具体怎么执行?,我attach容器什么都不显示,进去就卡死,然后这样进去在iserver /bin下也没有passwordreset.sh脚本。

C:\Users\Dayushi>docker run -i -t supermap/iserver /bin/sh
# ls
bin  boot  dev  etc  home  lib  lib32  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# ^C
#
# cd bin
# ls
bash          cp             fuser     ls             openvt                   sed         uncompress
bunzip2       cpio           grep      lsblk          pax                      setfont     unicode_start
bzcat         dash           gunzip    lsmod          paxcpio                  setupcon    vdir
bzcmp         date           gzexe     mkdir          paxtar                   sh          vmmouse_detect
bzdiff        dd             gzip      mknod          pidof                    sh.distrib  which
bzegrep       df             hostname  mktemp         ping                     sleep       whiptail
bzexe         dir            ip        more           ping6                    ss          ypdomainname
bzfgrep       dmesg          kbd_mode  mount          plymouth                 stty        zcat
bzgrep        dnsdomainname  kill      mountpoint     plymouth-upstart-bridge  su          zcmp
bzip2         domainname     kmod      mt             ps                       sync        zdiff
bzip2recover  dumpkeys       less      mt-gnu         pwd                      tailf       zegrep
bzless        echo           lessecho  mv             rbash                    tar         zfgrep
bzmore        ed             lessfile  nc             readlink                 tempfile    zforce
cat           egrep          lesskey   nc.openbsd     red                      touch       zgrep
chgrp         false          lesspipe  netcat         rm                       true        zless
chmod         fgconsole      ln        netstat        rmdir                    udevadm     zmore
chown         fgrep          loadkeys  nisdomainname  running-in-container     umount      znew
chvt          findmnt        login     open           run-parts                uname
# docker run passwordreset.sh
/bin/sh: 5: docker: not found

进入容器之后就是Linux操作系统了(已经不是 C:\Users\Dayushi> ),ls / 命令看下全盘,iServer应该是放在 /opt 目录下的。

你好,在window环境下使用docker运行iserver,我已经进入到容器里了但是ls后没找到passwordreset.sh这个脚本,问题还是一样,能启动容器,也能映射端口,也能进入界面,账号密码没有错,就是显示账号密码错误,请问这该怎么办?

不是 /bin 这个目录,另外你Linux很不熟呀,/ 是Linux根目录, /bin 是根目录下某个系统目录,一般是操作系统文件和用户安装应用文件等;我们提供的镜像iServer应该是安装在 /opt 目录下的,容器里应该是没装docker的,所以没有docker命令;执行sh脚本不是run命令,可以在脚本所在目录下 ./***.sh 执行脚本,或者 sh ***.sh 或者 bash ***.sh 执行脚本,和Windows批处理的命令是不一样的;可以先去了解下Linux基础,建议先 ls / 看下全盘有哪些目录,ls /opt 查看根目录下 opt 目录有哪些文件/文件夹,登陆Linux默认是进入用户目录。

另外,docker是分层存储的,关闭容器后,该容器里所有操作都会丢失,比如保存到容器里(可以当成虚拟机)的文件(共享目录、没在容器里的,比如数据库等的除外)、系统设置等。我们的原始镜像应该是每次启动都是新安装的,也就是需要设置管理员用户密码的界面,除非你保存了容器为新的镜像,用新的镜像创建并启动(docker run)一个容器。
...