【Docker】手把手教你搭建好玩的docker项目合集

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
全局流量管理 GTM,标准版 1个月
简介: 【Docker】手把手教你搭建好玩的docker项目合集

这是我在使用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:存放日志

相关文章
|
2月前
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
306 3
|
7天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
24 3
实战~如何组织一个多容器项目docker-compose
|
1月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
434 3
|
7月前
|
jenkins 网络安全 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
135 3
|
2月前
|
Docker 容器
如何利用docker来部署war包项目
本文介绍了如何使用Docker来部署WAR包项目,包括编写Dockerfile和docker-compose.yml文件,以及如何通过Docker Compose启动服务。
68 0
|
4月前
|
关系型数据库 MySQL Java
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
这篇文章介绍了在腾讯云服务器上使用Docker安装常见软件的过程,包括安装MySQL、Redis和Tomcat,并提供了解决连接问题的方法。同时,还涉及了服务器中安装JDK 1.8的步骤和如何将项目打包部署到服务器上的指导,包括注意事项和操作提示。
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
|
5月前
|
存储 关系型数据库 数据安全/隐私保护
【Docker实战项目】使用Docker部署Plik 临时文件上传系统
【7月更文挑战第23天】使用Docker部署Plik 临时文件上传系统
67 1
【Docker实战项目】使用Docker部署Plik 临时文件上传系统
|
3月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
4月前
|
开发框架 .NET Linux
【Azure Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件
【Azure Developer】已发布好的.NET Core项目文件如何打包为Docker镜像文件