在 docker中 运行 mono /jexus server 并部署asp.net mvc站点

http://linuxdot.net/bbsfile-3988

1.  安装 docker:  
    // docker 1.7 新版 安装非常容易,理论上说,在主流的任意linux发行版上都可以直接安装.
    wget -qO- https://get.docker.com/ | sh

2. 重启你的宿主机,可选.
    reboot

3.拉取已经内建了mono 和jexus 服务器的 docker镜像, 此镜像基于 官方 ubuntu:14.04.2 版本构建,dockerfile 在 hub.docker.io 上可以看到.
    docker pull azraelrabbit/monupw

4. 运行容器: 以拉取下来的镜像为基础创建并运行一个容器,镜像内已声明 22/80端口 并已启动对应的服务,22: sshd, 80: jexus

docker run --name monojexus -d -p 32022:22 -p 32080:80 -v /mydata:/data azraelrabbit/monupw

-v 是指将容器里的 Volume[/data] 的/data路径 映射到主机的 /mydata路径.
    -p 将容器里的端口映射到主机的指定端口, 这个端口,必须是在dockerfile里,用 EXPOSE 指令声明过的端口.
    --name 给这个容器 命名. 方便后续的管理操作,否则用id太猥琐了.[容器的id是随机的128位的字符串,简写的是16位的,不过不方便记忆和管理.]
    -d 指让容器以后台服务方式运行,
            注: -i  Keep STDIN open even if not attached
                -t  Allocate a pseudo-TTY 
                -i -t 联合起来用就是指 以前台进程运行容器,并且获得容器的shell,当退出shell时,容器停止运行. 此时可在指令的最后加入要执行的命令行,
                       貌似这样会覆盖掉 dockerfile里面的CMD[]指令内部的命令行.

5. 用ssh工具连接主机的 32022 端口,即可连接到这个已启动的容器内.

6. 将你的mvc工程或asp.net工程复制到 /mydata路径下. 并在ssh shell 里用sudo 重启一下jws . 即可访问这个容器内的 站点了.
    注: 本意是直接发布站点到/mydata下就能直接访问,但是一直报错,而用静态html则可以,所以必须 ssh连接上容器后,必须sudo 重启jws 才能正常访问asp.net/mvc 的站点. 这个问题待解决.

. 容器管理
    查看运行中的容器:  docker ps
    查看所有容器:  docker ps -a

停止容器: docker stop   容器名/容器id
    删除容器: docker rm  容器名/容器id
 
. 镜像管理:
        获取/更新镜像:  docker pull 
        删除镜像:  docker rmi  镜像id

先用admin:monupw用户登陆,在su root:monups可以使用

上一篇:DOM常用方法总结


下一篇:js字符串长度计算(一个汉字==两个字符)和字符串截取