折腾的原因:我目前有两个网站需要挂载,因为为了玩,并不是为了大流量,所以就挂在家里的群晖中。一个是小圈子(www.cirdown.com:81),因为用的是discuz论坛,php的,所以直接用我的黑群晖自带的组件webstation就可以直接部署;另外一个站点是用python给老婆写的一个工作用的辅助工具(招投标辅助www.cirdown.com:8000),用的是python+django写的,如果要部署的话需要用到ubnutu+python+django+nginx+uwsgi等,这时候群晖自带的组件就不能满足了,所以之前是单独挂在一台联想的e290s上。最近感觉有点浪费、冗余,就想到了利用群晖中无所不能的Docker来安装ubuntu server运行www.cirdown.com:8000,把闲置出来的e290s还能拿来装个Deepin系统什么的折腾折腾,所以本篇的内容就是在群晖docker中安装ubuntu搭建服务器的过程。黑群晖版本:DSM 6.0.2-8451
如果您现在打开www.cirdown.com:8000的话,它已经是运行在我的黑群晖机器中了。
下面开始进入正题,安装docker之类的就不说了,套件中心直接搜索下载就行了
一、docker内下载安装ubuntu
(一)映像的选择
这个是打开docker后默认显示的总览页面,大家可以看到我的容器里包括ubuntu-16的容器,这个就是www.cirdown.com:8000的家了
点选“注册表”,在搜索栏输入“ubuntu”搜索,大家可以看到有很多版本可供选择,这些都是大神们发布的一些纯净或集成的一些包,选择的时候大家注意ubuntu的版本和集成了哪些软件就可以了。
我需要的是ubuntu16.04版本,刚开始没注意版本安装的几个都是14.04的版本,所以出现了这样那样的问题,后来安装了图示的版本顺利完成服务器的配置。
选择好版本直接双击或者点下载,等待下载完成,点击映像,查看已下载完成,共331MB
(二)安装
双击下载好的映像,弹出创建容器的对话框,容器名字自己取一个名字,然后点击“高级设置”
弹出来的高级设置对话框,这里只需要设置卷和端口设置就可以了
在卷中,选择添加文件夹,在“文件/文件夹”下选择在群晖中的docker共享文件夹下新建的ubuntu文件夹,“装载路径”下输入"/nas",这里的意思就是你群晖中的/docker/ubuntu文件夹和你安装的容器中的utuntu系统里的/nas文件夹是互通的,这样传输文件就非常方便。
端口设置里我们不要管现有的,新添加22端口和8000端口。这里的容器端口就是安装的ubuntu系统开放的端口,本地端口可以理解成群晖的端口,关于端口映射的部分详细见下面第二部分“外网访问的准备工作”。然后确定——下一步
勾选“向导完成后运行此容器”然后点应用,容器就会自动运行了。
至此,安装ubuntu容器的工作就完成了,您的ubuntu服务器操作系统已经在运行了,只不过还没有相应的配置。
二、外网访问的准备工作
(一)动态域名(DDNS)
1、首先询问您的宽带服务商,您的IP地址是不是公网IP,也可自行百度查询,如果不是的话打电话给运营商索要,问你要公网ip的原因,就说是网络监控或者直接说有家庭存储服务器需要外网访问就可以了,一般就会给你改成公网ip。
2、然后申请动态域名服务,我使用的是我的TP-link wdr7500路由器自带的DDNS服务,非常简单好用、稳定,推荐!这个路由器的WAN口要连接到你的宽带光猫。
这样你的公网ip就对应上了这个DDNS域名—— *.tpddns.cn,使用这个域名加端口的形式就可以访问到你的内网开放的服务,比如*.tpddns.cn:5000,就可以访问到你的群晖登陆界面,玩群晖的应该都明白,就不多说了。
(二)端口映射
有了动态域名,那么接下来就是把你服务器中的端口开放给外网,然后使用动态域名+端口的形式就可以访问到你内网的服务。本站就是使用的81端口,域名我使用了购买的顶级域名www.cirdown.com,然后CNAME到前面申请好的*.tpddns.cn上就可以使用www.cirdown.com:81来访问了。如下图:
言归正传,我现在希望通过www.cirdown.com:8000来访问: 群晖——docker容器ubuntu中的网站 ,并开放ubuntu的22端口,以便在外网可以通过终端ssh登陆该服务器。
首先还是同样在我的tplink wdr7500路由器中设置端口映射
如下图1,我把不相干的都隐去了,IP地址一栏都是一样的内网ip,这个ip是我的群晖机器的内网ip。
其中“外部端口”和“内部端口”,外部端口就是域名后面的这个端口,比如www.cirdown.com:8000,内部端口就是群晖的端口,这样外部访问的8000就对应到了群晖的8000,这个时候外网地址加8000端口还只是能访问到群晖中的8000端口的服务,还没有到docker的容器中,大家应该还记得前文中在安装ubuntu容器的时候也设置过端口,如下图2,图2中的本地端口其实就是群晖中的端口,对应的就是路由器设置端口映射的内部端口,容器端口就是docker容器ubuntu中的端口。
整体流程就是:当我们输入www.cirdown.com:8000的时候,这个外部端口8000——内部端口(群晖)=本地端口(群晖)8000——容器端口8000(网站所在的ubuntu服务器)
因为不存在冲突,所以外部、群晖、docker容器都设置成了一样的的端口,如果想更清楚的理解,那就看下22端口,因为22号端口是ssh服务的专用端口,当我的群晖主机和docker容器都开放了22端口时,外部访问的时候,域名后面的外部端口号就要有所区分了,如图1和图2,大家自行理解。图1
图2
写的可能有点啰嗦,以上就是如何在docker中安装linux的服务器,并解决外网访问的问题,如果有问题可以跟帖提出,docker简直无所不能,有很多很好的服务可以安装,充分挖掘你群晖的能力!网站就更不用说了,想挂多少网站都可以,唯一遗憾的就是80端口被封(吐槽的力气都没有了)。
下面一个部分——服务器的部署再单开一个帖子吧。
单开帖子,《利用群晖Docker安装ubuntu16.04搭建python网站服务器(部署篇)》
地址:http://www.cirdown.com:81/thread-186-1-1.html
原文链接:https://blog.csdn.net/weixin_39765625/article/details/111002083?ops_request_misc=&request_id=&biz_id=&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~koosearch~default-10-111002083-null-null.268%5Ev1%5Ekoosearch&utm_term=NAS%E3%80%81%E7%BE%A4%E6%99%96%E3%80%81%E9%98%BF%E9%87%8C%E4%BA%91%E3%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E3%80%81%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E3%80%81ipv6%E3%80%81ddns%E3%80%81%E8%BD%BB%E9%87%8F%E7%BA%A7%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E9%93%81%E5%A8%81%E9%A9%AC%E3%80%81%E5%A8%81%E8%81%94%E9%80%9A%E3%80%81DSM%E3%80%81DSM6.0%E3%80%81%E7%BE%A4%E6%99%96nas%E3%80%81%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E8%9C%97%E7%89%9B%E6%98%9F%E9%99%85%E3%80%81%E9%BB%91%E7%BE%A4%E6%99%96%E3%80%81docker%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81%E5%9F%9F%E5%90%8D%E6%B3%A8%E5%86%8C%E3%80%81%E5%AE%9D%E5%A1%94%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81nginx%E3%80%81frp%E3%80%81%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90