这是我在使用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有很多强大的功能,这里就不一一列举了,更强大的是它还支持移动端访问

image-20230316221621652

第一步,首先从镜像站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

image-20230316224146389

这样自己的网盘就搭建好了!!!

有需要网盘的友友也可以来找我,我给你分配一个账号,不过最多只有5G空间,以及共享的10M宽带。

docker搭建自己的图床

图床可以用来存图片,也可以方便写博客来自动上传图片形成外链。

我自己的图床也是用nextcloud网盘来自动实现的,nextcloud网盘怎么搭建可以参考上一个docker项目喔。

我上传图片的工具是PicGo,它有nextcloud插件可以来自动上传图片,只需要配置账号名和密码就行啦。

image-20230316225313871

image-20230316225359519

docker搭建MineCraft我的世界服务器

我之前是用windows服务器开服,不是很难。但是用docker来开服的话,异常容易,2分钟的事情。

不管是纯原版服务器,还是forge版服务器,还是Spigot版服务器等等,只要pull网上对应的镜像就可以啦。

我是在docker hub镜像站搜索的,里面有很多大神都diy自己Minecraft服务器

image-20230316230301324

image-20230316230352375

我是自己来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官网上可以

image-20230316231920844

把下载下来的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

image-20230317001547494

原版启动:

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

image-20230317001833714

当然,我自己也制作了一个镜像,如果你想直接来用的话,可以直接pull我的镜像(不建议)

docker pull liangyuanshao/minecraft

有一块玩我的世界的小伙伴嘛?可以的话,加我来一块开服。

docker搭建青龙控制面板

安装青龙面板最常用的就是自动薅羊毛,每天自动薅京东的羊毛,薅快手的羊毛等等。

青龙控制面板网站通过青龙命令来定时执行自定义的一些脚本,这些脚本可以通过别人的“库“拉取来得到。

比较有名的就是京东脚本,京东脚本有很多小的脚本,可以来自动请求京东的接口来进行完成自动签到、自动领金币、自动领积分等等功能

当然还可以自己写Python脚本,Java脚本等等来定时执行。我就写过一个百度知道自动签到的脚本,然后每天自动跑哈哈哈。

image-20230317002310161

第一步,拉取青龙镜像

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等等

image-20230317103151152

首先 要有自己的域名,而且 自定义后缀==域名

比如说,我的域名是 liangyuanshao.top ,我邮箱的后缀就为 @liangyuanshao.top

因此,你先去购买域名吧,域名查询网址:https://wanwang.aliyun.com/domain/searchresult/#/?keyword=liangyuanshao.cn

image-20230317110031849

第一步,拉取一个centos镜像

docker pull centos:centos7

为什么不推荐拉取别人现成的ewomail镜像?

其实很简单,根据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的域名配置,这个域名一定是要你已经购买的域名

image-20230317112802251

第五步,创建邮箱用户

image-20230317114802038

然后访问服务器8000端口,登录就行啦

第六步,域名解析

进入到域名解析页面,需要解析的项有7项,你对着做就可以了

1.12.68.28要换成你自己的云服务器ip,liangyuanshao.top换成你自己的域名

image-20230317114531062

然后等待一段时间后,就能用给qq邮箱发送邮件了,因为域名解析要几分钟

image-20230317114946765

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:存放日志

持续会更新噢!!😊

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐