这是我在使用docker后,慢慢一个个累计起来的项目,觉得还挺有意思的。
之后我会持续慢慢的更新新的项目,大伙如何有好玩的docker项目,欢迎来找我讨论哇,我每天都会看私信的
docker搭建数据库
使用docker安装数据库是非常省事的,而且想安什么类型的数据就安什么类型的数据库,比如mysql,mongodb,redis等等,想安什么版本的数据库就安什么版本的数据库,非常方便,就连删掉也是一条命令的事情!!!
例如安装mysql:
docker pull mysql
或者指定版本的mysql:
docker pull mysql:5.7
然后就是运行起来了
docker run -idt -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
-idt 指的是后台运行,每次run的时候背熟固定加上就行了
-p 指映射的端口
-e 是容器内的环境变量,这里MYSQL_ROOT_PASSWORD是指定mysql root用户的密码
–name 指定容器的名字
最后的mysql是镜像名,指定从哪个镜像创建容器
ps: 我一般拒绝使用-v 来挂载,对新手不是非常好理解,而且针对数据库的话每次存储都要占用两倍的空间。
然后就能之间访问数据库了,是不是非常方便!!!
mysql -u root -p 123456
docker搭建私人网盘 nextcloud
有自己的一个网盘存东西是很舒服的!!!,而且还能给同学,家里人使用。
nextcloud有很多强大的功能,这里就不一一列举了,更强大的是它还支持移动端访问
第一步,首先从镜像站pull下来nextcloud的镜像
docker pull nextcloud
第二步,保证启动一个docker创建的mysql数据库,用来给nextcloud存储数据。在第一个项目已经讲解了喔。
docker run -idt -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
一定要进入数据库中,创建一个空的数据库nextcloud用来之后存入数据
mysql -u root -p 123456 CREATE DATABASE nextcloud; exit;
第三步,启动nextcloud
docker run -idt --name=nextcloud --link mysql:db -p 8080:80 --restart=always nextcloud
-idt 同样固定模式,要背熟使用的,表示后台启动
–name 指定容器的名字
–link mysql:db 这是表示做一个映射,mysql代表我们自己数据库的容器名,db表示的是mysql映射到容器的名字,之后我们会用到的。
-p 表示端口映射,8080是主机的端口,80是容器内部的端口,我们到时候请求主动的8080端口就行
–restart=always 表示容器重启后,nextcloud也会自动重启(没啥用)
最后的nextcloud表示镜像的名字
第四步,请求主机的ip+端口,来配置nextcloud
数据库用户可以是root,或者可以自己来新建数据库用户来管理nextcloud
这样自己的网盘就搭建好了!!!
有需要网盘的友友也可以来找我,我给你分配一个账号,不过最多只有5G空间,以及共享的10M宽带。
docker搭建自己的图床
图床可以用来存图片,也可以方便写博客来自动上传图片形成外链。
我自己的图床也是用nextcloud网盘来自动实现的,nextcloud网盘怎么搭建可以参考上一个docker项目喔。
我上传图片的工具是PicGo,它有nextcloud插件可以来自动上传图片,只需要配置账号名和密码就行啦。
docker搭建MineCraft我的世界服务器
我之前是用windows服务器开服,不是很难。但是用docker来开服的话,异常容易,2分钟的事情。
不管是纯原版服务器,还是forge版服务器,还是Spigot版服务器等等,只要pull网上对应的镜像就可以啦。
我是在docker hub镜像站搜索的,里面有很多大神都diy自己Minecraft服务器
我是自己来diy的一个服务器容器,下面以我开服为例(纯净版和forge版,1.19.2 ):
第一步,我首先pull一个有java环境的镜像(拥有原始jdk的)
docker pull openjdk:20-slim-buster
第二步,启动容器
docker run -idt -p 8123:8123 -p 25565:25565 -p 25575:25575 --name minecaft openjdk:20-slim-buster
-idt 固定的设定后台启动,背熟就行了
-p 8123:8123 -p 25565:25565 -p 25575:25575 其中 8123、25565、25575都是minecrart服务器运行时要开放的端口,必须要映射的,不让访问不了
–name minecaft 指定容器名
最后 openjdk:20-slim-buster 代表一个java环境的镜像(拥有原始jdk的)
第三步,下载纯净版jar包,并放到容器内部
在mojang官网上可以
把下载下来的jar包,放到服务器内部,然后再copy到容器内部,至于怎么copy到容器内部,是docker的基本操作了,详细可以参考我的另一篇博客,docker的基本命令总结
docker cp ./server.jar minecraft:/root
第四步,进入容器内部,然后使用java执行server.jar
进入
docker exec -it minecraft /bin/bash
java -Xmx1024M -Xms1024M -jar server.jar nogui
第五步,修改 eula.txt,正式启动
vim /root/eula.txt
原版启动:
java -Xmx1024M -Xms1024M -jar server.jar nogui
forge版启动:
熟悉forge的都知道,需要先下载forge安装包,forge-1.19.2-43.1.52-installer.jar ,同样放到和server.jar一个目录下,进行执行
java -jar forge-1.19.2-43.1.52-installer.jar
然后服务器就变成forge版本了,使用./run.sh来启动服务器,以下代表启动成功
./run.sh
当然,我自己也制作了一个镜像,如果你想直接来用的话,可以直接pull我的镜像(不建议)
docker pull liangyuanshao/minecraft
有一块玩我的世界的小伙伴嘛?可以的话,加我来一块开服。
docker搭建青龙控制面板
安装青龙面板最常用的就是自动薅羊毛,每天自动薅京东的羊毛,薅快手的羊毛等等。
青龙控制面板网站通过青龙命令来定时执行自定义的一些脚本,这些脚本可以通过别人的“库“拉取来得到。
比较有名的就是京东脚本,京东脚本有很多小的脚本,可以来自动请求京东的接口来进行完成自动签到、自动领金币、自动领积分等等功能
当然还可以自己写Python脚本,Java脚本等等来定时执行。我就写过一个百度知道自动签到的脚本,然后每天自动跑哈哈哈。
第一步,拉取青龙镜像
docker pull whyour/qinglong
该镜像是来自官方docker hub,https://hub.docker.com/r/whyour/qinglong
第二步,启动就行了,官方也有详细的教程,我直接摘取官方的命令了
docker run -idt \ -v $PWD/ql:/ql/data \ -p 5700:5700 \ --name qinglong \ --hostname qinglong \ --restart unless-stopped \ whyour/qinglong:latest
-idt 不用多解释了,后台启动,固定记忆就行了
-v 挂载,初学docker会有点难理解,相当于把主机目录和容器目录共享,我一般都不会使用-v
-p 青龙面板必须开放5700端口,完成映射
–name 青龙面板容器的名称
–restart unless-stopped 除非面板停止,不让不会重启(没啥用)
最后是青龙面板镜像的名称
安装完后,就可以进行拉库了,可以拉京东的库,拉快手的库等等,反正是能薅到羊毛滴。这个教程就不多讲了。改天出一个集合文章。
docker搭建私人邮件服务器 ewomail
私人邮件服务器可以实现自定义结尾的邮箱名。比如 @kunkun.cn @iloveu.com ,我自己的是 @liangyuanshao.top。而且邮箱前缀也是可以自定义的,且具有无限个。
liangyuanshao@liangyuanshao.top,1@liangyuanshao.top,kunkun@liangyuanshao.top等等
首先 要有自己的域名,而且 自定义后缀==域名
比如说,我的域名是 liangyuanshao.top ,我邮箱的后缀就为 @liangyuanshao.top
因此,你先去购买域名吧,域名查询网址:https://wanwang.aliyun.com/domain/searchresult/#/?keyword=liangyuanshao.cn
第一步,拉取一个centos镜像
docker pull centos:centos7
其实很简单,根据ewomail官网上的介绍,其实搭建ewomail一行代码代码就能搞定,之后我会提到。而且我尝试过使用其它人的docker来搭建,很麻烦,最后都没有成功。
第二步,创建ewomail容器
docker run -idt \ -p 25:25 \ -p 109:109 \ -p 110:110 \ -p 143:143 \ -p 465:465 \ -p 587:587 \ -p 993:993 \ -p 995:995 \ -p 80:80 \ -p 8080:8080 \ --name ewomail centos:centos7
-idt 固定模式,表示后台启动,记住就行了
-p的一系列端口,这些端口映射都是需要开放的,因为ewomail官方文档里面已经写了
–name 表示启动容器的名字,ewomail
最后表示从哪个镜像来生成容器
注意:
假如说你是腾讯云服务器,很可惜,25端口是不开放的,你无法搭建自己的邮件服务器。它说是为了净化网络环境。
假如说你是阿里云服务器,25端口是被占用的,你必须先kill掉对应端口的进程,然后再启动才可以
netstat -nlp | grep 25 # 查找对应进程id kill xxxxx # 然后杀掉
第三步,创建,容器进入容器内,完成搭建
进入容器
docker exec -it ewomail /bin/bash
安装wget,因为一般的新centos容器是没有wget的
apt-update
apt install wget
一键安装,注意,后面的liangyuanshao.top要换成你自己的域名
wget -c https://down.ewomail.com/install-03.sh && sh install-03.sh liangyuanshao.top
第四步,进入后台完成配置
后台端口是8010,你可以访问你的服务器+加端口8010来进行后台设置了
刚开始默认用户: admin
默认密码: ewomail123
进入邮箱系统设置,完成ewomail的域名配置,这个域名一定是要你已经购买的域名
第五步,创建邮箱用户
然后访问服务器8000端口,登录就行啦
第六步,域名解析
进入到域名解析页面,需要解析的项有7项,你对着做就可以了
1.12.68.28要换成你自己的云服务器ip,liangyuanshao.top换成你自己的域名
然后等待一段时间后,就能用给qq邮箱发送邮件了,因为域名解析要几分钟
docker搭建nginx转发服务器
同样和搭建数据库一样,非常容易
第一步,拉取镜像
docker pull ngnix:latest
第二步,运行
-p 指定需要开放的端口,前面的80是主机的,后面的80是容器内的端口
docker run -p 80:80 --name ngnix ngnix:latest
第三步,配置
进入到容器内,完成配置
docker exec -it ngnix /bin/bash #一般没有vim,可以先安装vim apt-update apt install vim
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放静态文件
/var/log/nginx:存放日志