【Docker】手把手教你搭建好玩的docker项目合集
创始人
2025-05-29 21:40:37
0

这是我在使用docker后,慢慢一个个累计起来的项目,觉得还挺有意思的。

之后我会持续慢慢的更新新的项目,大伙如何有好玩的docker项目,欢迎来找我讨论哇,我每天都会看私信的

在这里插入图片描述

文章目录

      • docker搭建数据库
      • docker搭建私人网盘 nextcloud
      • docker搭建自己的图床
      • docker搭建MineCraft我的世界服务器
      • docker搭建青龙控制面板
      • docker搭建私人邮件服务器 ewomail
      • docker搭建nginx转发服务器

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

持续会更新噢!!😊

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...