在 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可以使用
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章