废话篇
本篇文章为原创文章,可以保证在不出现大变化的前提下,是可以100%按照教程操作成功的。转载请注明出处,感谢。
本人也有个人博客:李蜀博客
教程视频地址:https://b23.tv/R7psXN
(推荐观看视频,内容更完善)
更多原创文章,可以访问我的博客直接查看。感谢阅读!
1、前言
有些时候我们需要在自己的群晖里搭建小网站,比如做个小导航什么的,用群晖自带的web station就够用了,但是有时候需要搭建复杂点的网站,这个时候群晖自带的环境就不太舒服了,所以我们可以通过docker来自己搭建一个宝塔lnmp环境,下面为操作步骤
步骤都是自己操作后整理的,只要按照教程来做,就没问题
2、整体思路和流程
- 群晖安装docker环境
- docker里直接搭建宝塔环境
3、具体操作
1、安装docker,并添加国内阿里云镜像加速
群晖里,选择套件中心,然后在里面搜索docker,然后安装即可。
接着按照下图指示,依次点击:
注册表——>设置——>选中Docker Hub——>编辑
然后勾选上启用注册表镜像,输入https://rr05efme.mirror.aliyuncs.com
,点击确定
解释下这部的操作目的,docker hub默认是在国外,如果我们下载docker里的镜像,就需要从国外的服务器里下载,速度就很慢。所以我们添加了一个阿里云的镜像地址,这样我们以后下载docker里的镜像,就是从国内下载的了,就很快啦!
声明:这个地址是我个人的阿里云加速地址,最好你自己去找阿里云申请一个,具体可以百度!
2、安装宝塔镜像
宝塔的安装我们可以有2个方案:
- 我们自己直接从官方达宝塔镜像里拉取,然后自己再在后台里手动安装lnmp环境。
- 用别人做好的宝塔镜像来搭建环境。
实测结果,第一种方法,安装速度很慢,尤其是后面安装nginx等环境的时候,一不小心20分钟都有可能,而第二种方法比较快,其次这个现成的宝塔环境是用dockerfile自动生成的,安全性有保障,所以我们这里就用第二个方法来安装啦!
搜索baota,然后双击,选择latest即可
附上版本说明:
安装好了镜像如下图:
(不要觉得它很大,下载的时候其实是1.6,安装之后才是6G的,如果你自己手动安装宝塔加这些环境,也是这么大的,所以不用担心!)
(下载比较慢很正常,毕竟1.6GB的文件,其次docker镜像是个层级结构,速度是忽高忽低,所以多等会就行了,下载到1.7G左右的时候,它就不动了,不是卡死了!别把它给删了,它是在安装,安装好了就是6G了)
3、设置权限
在启动容器之前,我们可以先新建一个目录,后面容器启动好把网站挂载过来,方便我们修改网站,而默认的lnmp数据,我们直接放到docker的volume里就行了,反正不用手动改东西(不懂没关系,往下看就行了)
在docker里,创建一个wwwroot,这个路径不要错,后面要用得到,如果你不是和我一样的路径,那么后面你自己看着修改!
然后我们需要给docker权限,不然它没法写入数据
双击Everone,然后都勾选上
如图所示之后,我们点击确定!
4、启动镜像
我们首先打开群晖的终端,用root权限来操作镜像的启动
然后我们用putty来连接群晖的终端,如果你没有这个软件,就百度自己下载一个
打开之后,输入我们群晖的IP,端口输入22(默认),选择SSH,点击Open就行了。
如果你是在外网访问的话,还需要给路由添加一个外网映射的端口22,然后IP那里,填你的DDNS地址,或者你家公网IP也行的
输入我们的群晖账号(就是你登陆的用户名),按回车
接着输入我们的群晖登陆密码(这个地方输入密码是看不见的,盲打输入就行了),按回车,出现下图,就说明登陆成功。
接着我们输入 sudo -i
,回车,接着再输入一次我们的登陆密码,回车
如果是如下图一样,前面是root开头的,就说明OK啦!
输入docker images
,如果出现下图显示的名字,就是说明OK
然后接着我们输入下面的内容,手打比较累,我们把下面全部复制,然后切到终端界面,按一下鼠标反键,就粘贴上去了。接着按回车
docker run -tid --name baota \
-p 10080:80 -p 10443:443 -p 18888:8888 -p 10888:888 \
-p 10020:20 -p 10021:21 \
--privileged=true --shm-size=1g \
--restart always \
-v /volume1/docker/wwwroot:/www/wwwroot \
-v baota_www:/www \
pch18/baota
出现了下面这样的提示,就说明是创建成功了。
小提示:如果是第一回安装的话,会很慢!因为它要安装一些环境等等,反正等着就完事!以后安装都是秒安了!
最后我们在浏览器里输入群晖的IP+18888端口,就可以访问了。如下图
如果是外网访问,就输入DDNS+18888端口就可以了(记得路由器里端口映射一下哦)
默认的账号:username
默认的密码:password
登陆进去之后,可以自己修改
4、补充说明
1、端口说明
首先说明一下关于宝塔端口的问题,
默认是80、443、20、21、888、8888
而我操作的时候,都修改成了10080、10443、10020、10021、10888、18888
之所以这样做,是为了防止其它的端口发生冲突,你也可以自己修改这些端口!
2、数据保存问题
关于数据库和站点的储存说明:
数据库mysql默认是在docker的volume数据卷的baota_www文件夹里,这个卷在群晖的界面里是隐藏的,所以你是看不到的,但是我们哪怕删除容器,这个数据卷也是存在的,所以不用担心丢失,下次我们继续-v挂载就行
(但是!如果卸载了docker,那这个数据卷就会被删除了,所以docker卸载慎重,记得提前备份!)
网站的站点目录,是储存我们之前手动新建的文件夹wwwroot里,同样不会自动删除的,放心用!
3、后面操作
后面不论是 停用/删除/重新新建 baota容器,只用重新输入下面就可以了,速度很快!
docker run -tid --name baota \
-p 10080:80 -p 10443:443 -p 18888:8888 -p 10888:888 \
-p 10020:20 -p 10021:21 \
--privileged=true --shm-size=1g \
--restart always \
-v /volume1/docker/wwwroot:/www/wwwroot \
-v baota_www:/www \
pch18/baota
最后附上docker的一些常用操作指令(需要的时候用就行了,不要乱尝试!!否则会把数据删了!)
# 搜索镜像
docker search 搜索名
# 下载镜像
docker pull 镜像名(:tag标签,默认latest)
# 查询docker所有镜像列表
docker images
# 查询docker运行中的容器列表
docker ps
# 查询docker所有容器列表(包括停止的)
docker ps -a
# 强制删除容器
docker rm -f 容器名 或 容器id
# 强制删除镜像
docker rmi -f 镜像名 或 镜像id
# 查询容器元信息
docker inspect 容器名
# 查询镜像元信息
docker inspect 镜像名
# 创建容器
docker run 参数 镜像名 或 镜像id
# 启动容器
docker start 容器名 或 容器id
# 停止容器
docker stop 容器名 或 容器id
# 重启docker容器(群晖里的docker操作和centos有点不太相同)
synoservice --restart pkgctl-Docker # 群晖
systemctrl restart docker # centos
# 列出所有服务
synoservicecfg --list
docker如果需要更深入的了解,还是多看下docker的教程吧。
就先写到这里了!