什么是docker以及一些有趣的docker项目

Docker是一种轻量级虚拟化技术,以其快速启动、低资源消耗和便捷的部署、卸载及移植性优于传统虚拟机。文章列举了如alist、nextcloud、青龙面板等具体项目的部署示例,同时指出Docker在隔离性和安全性上的不足。Docker适用于快速部署应用,尤其适合开发者和初学者进行项目管理和学习。

docker的介绍

什么是docker

那为什么我们要用docker而不用虚拟机呢?

启动优势

docker资源消耗会更少

docker具有一键部署的简便性

docker的卸载简便性

docker的可移植性

docker相比于虚拟机的局限性

docker的隔离性不如虚拟机

docker的安全性不如虚拟机

部分docker项目的介绍

alist

部署命令

nextcloud

部署命令

青龙面板

部署命令

网心云

部署命令

kodbox(可道云)

部署命令

部署命令

docker的介绍

Docker是基于linux内核的一个自由开发,打包,运行程序的平台,Dcoker可以让我们将程序从环境中分离出来从而实现快速迁移我们的项目。通过Docker,管理我们的应用就像管理我们的环境一样简单(我觉得在实际开发中哪个都不简单,对于刚毕业的我来说),通过利用docker技术可以快速打包,测试,部署我们的代码,你可以显著的减少在编写代码以及将它运行在生产环境中的时间损耗。

他是真正让我意识到linux方便之处的开始

简单狭义的来说docker就是一个轻量的虚拟机

docker的启动速度方面要比虚拟机快的多得多

docker在操作系统级别进⾏虚拟化,他与硬件内核的交互利用率几乎是100%

而Hypervisor层与内核层的虚拟化有时只能达到50%

大多数的docker项目只需要一段命令就可以完美安装好他人提供的镜像

无需再次安装其他依赖

相比于把一堆垃圾软件安装到系统上然后难以删除(尤其是linux系统)

docker就是一种十分简单的安装与卸载的形式

你不仅可以下载别人的镜像与此同时,你也可以发布你自己做好的镜像以供他人使用。

他人也可以用几段代码拉取你制作的镜像

与系统隔离的虚拟机相比,docker只是进程间的隔离。

由于docker的隔离性不行,所以当他测试一些恶意软件时他的安全性不如虚拟机

部分docker项目的介绍

这一个项目可以挂载市面上几乎任何的网盘(百度云盘,阿里云盘,123云盘…)

并且可以通过webdav来挂载阿里云视频到本地文件夹,之后通过emby来实现播放搭建自己的私人影院

或者你也可以配合aria2来实现获取网盘文件的快速下载链接,比如阿里云盘在我电脑上用客户端下载时10m/s而用aria2可以实现30m/s 的下载速度

1
docker run -d --restart=always -v 你缓存的文件夹位置:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest

运行下面命令获得密码

1
docker exec -it alist ./alist admin

网站在服务器ip:5244

它是一个私人云盘服务,并且可以提供下载上传以及挂载等多方面的功能(PS:私人云盘如果在内网搭建的话,网口配置只要不要太烂,内网之间的传输速率是非常非常快的,我这边是60m/s,并且不占用局域网内其他电脑的宽带)

1
docker run -d --restart=always --name nextcloud -p 80:80 -v /root/nextcloud:/data rootlogin/nextcloud

网站在服务器ip:80

这里要说明其中的80:80中前面的80可以变(后面的绝对不行)变成81的话

网站就在服务器ip:81

这也是我接触docker的第一款项目,它可以定时的执行一些pyhton或者是nodejs的一些小任务

比如最有名的就是京东自动定时薅羊毛(京豆,红包)

以及自动签到之类的脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 docker run -dit \
   -v $PWD/ql/config:/ql/config \
   -v $PWD/ql/log:/ql/log \
   -v $PWD/ql/db:/ql/db \
   -v $PWD/ql/repo:/ql/repo \
   -v $PWD/ql/raw:/ql/raw \
   -v $PWD/ql/scripts:/ql/scripts \
   -v $PWD/ql/jbot:/ql/jbot \
   -p 5700:5700 \
   --name qinglong \
   --hostname qinglong \
   --restart unless-stopped \
   whyour/qinglong:latest

如果你家里有闲置宽带又经常晚上因为加班用不着或者用的宽带大多数时候很少那不妨试试看用闲置宽带赚一些零花钱(过了一个星期后平均100m上行一天5块钱可以把宽带钱挣回来,但是晚上高峰期时如果打部分游戏的话会变得比较卡)

1
docker pull registry.hub.docker.com/onething1/wxedge
1
docker run -d --name=wxedge --restart=always --privileged --net=host --tmpfs /run --tmpfs /tmp -v 磁盘路径:/storage:rw registry.hub.docker.com/onething1/wxedge

这也是一款私人云盘,但是相比nextcloud他的内置的pdf阅读器非常的优秀,并且它拥有的桌面系统也十分方便操作,缺点就是没有nextcloud的强大的离线下载功能,虽然经过优化后也可以到达相应的水平

1
docker run -d --name kodbox --restart=always -v 你云盘存放文件的目录:/var/www/html -p 80:80 aeert/kodbox:latest

还是老样子80:80这行命令看着改就行(端口别被占用了)

宝塔(Baota)是一款免费的服务器管理面板,它提供了简单易用的图形界面,可以帮助用户快速地安装、配置和管理服务器上的各种应用程序,例如Web服务器、数据库、FTP等等。宝塔支持多种操作系统和软件环境,包括Linux、Windows、Nginx、Apache、MySQL、PHP等等。它的功能十分强大,包括网站管理、FTP管理、数据库管理、文件管理、日志管理、安全管理等等,而且宝塔的界面设计也非常美观和易用。

他可以非常简单的搭建一些网站以及一键部署一些网站

有趣的是你也可以在宝塔中再次安装docker来套娃

1
docker pull ubuntu
1
docker run -i -t -d --name bt -p 2000:20 -p 2100:21 -p 8000:80 -p 4430:443 -p 8880:888 -p 8888:8888 --privileged=true -v 宝塔中网站的挂载的本地目录:/www/wwwroot ubuntu
1
docker exec -it bt /bin/bash
1
2
3
4
apt-get update
apt-get -y install sudo
apt-get -y install wget
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

最后输入bt 14查看网站管理的网址(不同电脑不一样的端口)

docker作为一个工具它拥有极其简单的部署操作以及移植操作,并且对于一些刚开始入门linux的人来说可以激发学习兴趣,并且在不断的尝试与好奇之中学习。