丢弃宝塔,使用docker搭建网站主因:


dock安装文档


需要安装:

  1. 安装docker

  2. 安装docker可视化面板portainer

  3. 安装数据库mariadb

  4. 安装数据库管理工具phpmyadmin

  5. 安装wordpress

  6. 安装web服务nginx

  7. 安装反向代理神器nginx-proxy-manager


sudo -i
以root登录ssh

使用ssh远程软件以root用户登录


portainer安装命令

docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer portainer/portainer


容器的启动方式-容器的用户权限-镜像加速

容器的启动方式:

--restart=unless-stopped \
--restart=always \
--restart=no \

一些特殊的,例如portainer,必须--restart=always \

容器的用户权限

一些容器用户权限,需要获取系统的PUID与GUID,在终端输入:

id

就能获取类似,如:

uid=0(root) gid=0(root) groups=0(root)

那么需要uid和gid的环境变量就是:

-e PUID=0 \

-e PGID=0 \

 

镜像加速

创建docker目录(默认会有这个目录):

sudo mkdir -p /etc/docker

写docker配置文件:

sudo tee /etc/docker/daemon.json <<-‘EOF’
{
     “registry-mirrors”: [“你的阿里加速地址”]
}
EOF

重新加载服务列表:

sudo systemctl daemon-reload

重启docker:

sudo systemctl restart docker

(dockerhub里的镜像在国外,如由能力富强,没有任何必要改用阿里镜像加速,使用阿里云镜像加速有时镜像下载速度也慢,甚至有些特殊镜像无法下载,所以,能富强就没必要使用阿里镜像加速)


查看端口占用情况

安装容器要考虑端口使用情况,故要查看端口占用,命令:

netstat -tunlp | grep 端口号


mariadb安装命令

docker run -d \
--name=Mariadb \
-e PUID=1000 \
-e PGID=1000 \
-e MYSQL_ROOT_PASSWORD=123456789 \
-e TZ=Asia/Shanghai \
-p 3306:3306 \
-v /mnt/user/appdata/Mariadb:/config \
--restart=unless-stopped \
linuxserver/mariadb:latest

 

-e MYSQL_ROOT_PASSWORD=123456789 \ (123456789指的是root的密码,自己重设)
-v /mnt/user/appdata/Mariadb:/config \ (/mnt/user/appdata/Mariadb指的是宿主机目录,自己重设)


phpmyadmin安装命令

docker run -d \
--name=phpmyadmin \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=Mariadb的root密码 \
-e MYSQL_HOST=Mariadb的主机ip \
-e MYSQL_PORT=Mariadb的数据库端口 \
-p 宿主机端口:80 \
-v 宿主机目录:/config \
--restart=unless-stopped \
phpmyadmin/phpmyadmin:latest


wordpress

创建一个wordpress的宿主机文件夹:wordpress

cd 宿主机文件夹目录
nano uploads.ini
输入:
file_uploads = On
upload_max_filesize = 3G
post_max_size = 3G
输入:
ctrl+x y保存 enter回车

用phpmyadmin进入Mariadb创建一个wordpress的数据库:账号/新增用户账号/创建与账号相同名称的数据库wordpress,并授予所有权限

wordpress的安装命令

docker run -d \
--name=wordpress \
-e WORDPRESS_DB_HOST=Mariadb的ip:3306 \
-e WORDPRESS_DB_USER=wordpress \
-e WORDPRESS_DB_PASSWORD=创建的wordpress数据库的密码 \
-e WORDPRESS_DB_NAME=wordpress \
-p 宿主机端口:80 \
-v 宿主机目录/wordpress/wp:/var/www/html \
-v 宿主机目录/wordpress/wpconfig/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini \
--restart=unless-stopped \
wordpress:latest

 

如上传文件或更新主题插件时弹出需要ftp支持,可以修改wp-config.php配置文件,在该文件下添加一行代码:

define(‘FS_METHOD’,”direct”);


nginx安装命令

docker run -d \
--name=nginx \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 宿主机端口:80 \
-p 宿主机端口:81 \
-v 宿主机目录:/config \
--restart=unless-stopped \
linuxserver/nginx:latest

可以添加多个端口来搭建网站

 

www文件夹可以存放网站源码

 

nginx\site-confs目录下的default就是配置文件
default里:
listen [::]:80 default_server 是监听网站的端口即访问网站的端口

set $root /config/www 是网站源码的目录

 

在\nginx\php目录下对php-local文件修改,加入:

post_max_size = 4G
upload_max_filesize = 4G
memory_limit = 1G
max_file_uploads= 30
max_execution_time = 3600
max_input_time = 3600

第一项为post数据最大大小

第二项为允许上传文件的最大大小

第三项为使用内存大小

第四项为允许同时上传的文件数量

第五项为最大脚本运行时间

第六项为最大输入时间

数值多少依服务器性能决定,这里只是参考,性能不够,数值过大会崩的


用nginx可以搭建一些文件服务,比如:kodbox可道云    Files Photo Gallery     TinyFilManager

 

可道云源码下载

用phpmyadmin进入Mariadb创建一个kodbox的数据库:账号/新增用户账号/创建与账号相同名称的数据库kodbox,并授予所有权限,Mariadb或mysql数据库地址填:127.0.0.1:3306或192.168.0.252:3306(依mysql或Mariadb地址而定)

(同时安装好后在kodbox设置/基础设置/上传里修改上传分片大小和桌面拖拽文件大小,从而解锁上传速度15MB/s限制)

(分片大小依php-local里upload_max_filesize数值决定,比如:upload_max_filesize = 4G,那么分片大小最高为4M)


反向代理神器nginx-proxy-manager安装命令

docker run -d \
--name=nginx-proxy-manager \
-e DB_MYSQL_HOST=192.168.0.252 \
-e DB_MYSQL_PORT=3306 \
-e DB_MYSQL_USER=npm \
-e DB_MYSQL_PASSWORD=123456789 \
-e DB_MYSQL_NAME=npm \
-p 9980:80 \
-p 9981:81 \
-p 9943:443 \
-p 9950:9950 \
-v 宿主机目录/npm/data:/data \
-v 宿主机目录/npm/letsencrypt:/etc/letsencrypt \
--restart=unless-stopped \
jc21/nginx-proxy-manager

 

-p可以添加多个端口来反向代理

 

默认邮箱密码:

Email: admin@example.com
Password: changeme

 

在\data\nginx\proxy_host目录下,有配置文件,打开:(修改配置文件要给文件权限:chmod -R 777 文件目录)

在\data\custom_ssl目录下存放的是ssl证书

修改完配置文件后,需要重启容器才能生效

说一下使用注意项:


Debian 10上安装Docker

01、安装通过HTTPS添加新存储库所需的软件包:

sudo apt update

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2

02、使用以下curl命令导入存储库的GPG密钥:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add –

成功后,命令将返回OK

03、将稳定的Docker APT存储库添加到系统的软件存储库列表中:

sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable”

$(lsb_release -cs)将返回Debian发行版的名称。在这种情况下,就是这样buster

04、更新apt软件包列表并安装最新版本的Docker CE(Community Edition):

sudo apt update

sudo apt install docker-ce

05、安装完成后,Docker服务将自动启动。要验证它输入:

sudo systemctl status docker

输出类似如下:

Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

Active: active (running) since Tue 2019-07-30 20:52:00 GMT; 1min 11s ago

    Docs: https://docs.docker.com

06、Docker的最新稳定版本是19.03.1:

docker -v

输出内容:

Docker version 19.03.1, build 74b1e89

在没有Sudo的情况下执行Docker命令

默认情况下,只有root 用户和具有sudo权限的用户才能执行Docker命令。

如果要在不预先添加的情况下执行Docker命令,则sudo需要将用户添加到在安装Docker CE软件包期间创建的docker组。为此,请输入:

sudo usermod -aG docker $USER

$USER是一个保存用户名的环境变量。

注销并重新登录,以便刷新组成员身份。

完成后,验证您可以运行docker不带sudo类型的命令:

docker container run hello-world

该命令将下载测试图像,在容器中运行,打印“Hello from Docker”消息并退出。输出应如下所示:

 docker.service – Docker Application Container Engine

Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

Active: active (running) since Tue 2019-07-30 20:52:00 GMT; 1min 11s ago

    Docs: https://docs.docker.com


docker搭建私人文件服务—xbackbone

docker run -d \
--name=xbackbone \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 宿主机端口:80 \
-v 宿主机目录:/config \
--restart=unless-stopped \
lscr.io/linuxserver/xbackbone:latest

该文件服务需要创建数据库

如果要更改 PHP 最大上传大小.ini,可以通过在/config/php/php-local.ini

例:

post_max_size = 4G
upload_max_filesize = 4G
memory_limit = 1G
max_file_uploads= 30
max_execution_time = 3600
max_input_time = 3600

 

数值多少依服务器性能决定,这里只是参考,性能不够,数值过大会崩的


docker搭建文件服务—gohttpserver

完整安装命令

docker run -d \
--name=gohttpserver \
-p 宿主机端口:8000 \
-v 宿主机目录:/app/public \
--upload --delete --auth-type http --auth-http 用户名:密码 \
--restart=unless-stopped \
codeskyblue/gohttpserver

需要上传功能,请加 --upload
需要新建文件和删除功能,请加 --delete
启用基本 http 身份验证,请加 --auth-type http --auth-http 用户名:密码


最容易搭建的公开网盘alist

安装命令:

docker run -d
--name=alist 
-v alist宿主机目录:/opt/alist/data
-v alist宿主机目录/storage:/opt/alist/data/storage
-p 宿主机端口:5244
--restart=always
xhofe/alist:latest

安装好后:

输入账号密码,进入alist后台:


jellyfin安装并开启核显硬解

以root权限进入ssh终端

输入

modprobe i915

回车

输入

ls /dev/dri

回车

出现

card0renderD128或两者同时出现

输入

chmod 777 /dev/dri/renderD128

chmod 777 /dev/dri/card0

或都输入

回车

有些linux系统要设置开机自动加载核显驱动,例如unraid:

输入

cd /boot/config

回车

输入

vi go

回车

键盘点i进入编辑,上下左右键移动,输入

modprobe i915

键盘点Esc退出

再输入

:wq

回车

这样就保存退出了

安装命令

docker run -d \
--name=jellyfin \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 8096:8096 \
-p 1900:1900/udp \
-v jellyfin配置存放目录/config:/config \
-v jellyfin电影存放/movies:/data/movies \
-v jellyfin电视存放/tvseries:/data/tvshows \
-v jellyfin音乐存放/music:/data/music \
-v jellyfinMV存放/MV:/data/MV \
--device=/dev/dri/renderD128:/dev/dri/renderD128 \
--restart=unless-stopped \
lscr.io/linuxserver/jellyfin:latest

下面核显添加看设备是否支持

--device=/dev/dri/renderD128:/dev/dri/renderD128

--device=/dev/dri/card0:/dev/dri/card0

docker run -d \
--name=jellyfin \
--user uid:gid \
--net=host \
--volume jellyfin配置目录/config:/config \
--volume jellyfin缓存目录/cache:/cache \
--volume jellyfin视频存放目录/media:/media \
--device=/dev/dri/renderD128 \
--restart=unless-stopped \
jellyfin/jellyfin:latest

下面核显添加看设备是否支持

--device=/dev/dri/renderD128 \

--device=/dev/dri/card0 \

docker run -d \
--name=jellyfin \
--net=host \
--volume jellyfin配置目录/config:/config \
--volume jellyfin缓存目录/cache:/cache \
--volume jellyfin视频存放目录/media:/media \
--device=/dev/dri/renderD128 \
--restart=unless-stopped \
nyanmisaka/jellyfin


私人书库calibre-web安装命令

docker run -d \
--name=calibre-web \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e DOCKER_MODS=linuxserver/mods:universal-calibre \
-p 8083:8083 \
-v calibreweb目录/config:/config \
-v calibreweb目录/books:/books \
--restart unless-stopped \
lscr.io/linuxserver/calibre-web:latest

 

安装好后:

需要等1到2分钟等calibre-web正常启动

默认账号:admin  默认密码:admin123  登录进入

Database Configuration

Location of Calibre Database

之下,填

/books

save保存

admin/languge选中文简体

管理权限/编辑界面配置          进行配置

管理权限/编辑基本配置:启用上传  允许匿名浏览(可选)

管理权限/用户列表/用户名/Guest:允许在线阅读  允许下载书籍

重启容器后,会出现无法启动calibre情况,原因是无法连接“外面的网络”,解决办法是系统开启代理进行富强,启动成功后就不需要连接“外面的网络”了


apache搭建,可以做网站也可以直接做目录列表下载站

使用docker pull 拉取最新的apache镜像:

docker pull daocloud.io/sectest/php-apache:master-ca84461

安装命令:

docker run -d -it -p 宿主机端口:80 --name apache_php -v 宿主机目录:/var/www/html daocloud.io/sectest/php-apache:master-ca84461 /bin/sh

连接容器命令:

docker exec -t -i apache_php sh

在docker的容器内,启动apache2:

service apache2 start

 

 

进一步配置:

安装vim编辑器

输入

apt-get update

输入

apt-get install vim

vim编辑器安装完成

输入

cd /etc/php5/apache2/conf.d

输入

touch uploads.ini

输入

cd /etc/php5/apache2/conf.d

输入

vi uploads.ini

用vim编辑器进入uploads.ini文件里,输入(键盘点i进入编辑)

file_uploads = On
upload_max_filesize = 4G
post_max_size = 4G

输入完,键盘点Esc,再输入

:wq

退出保存

之后,关闭容器,重启容器

 

输入

cd /etc/php5/apache2

输入

vi php.ini

进入php.ini文件,修改=右边数值(键盘点i编辑)

file_uploads = On
post_max_size = 4G
upload_max_filesize = 4G
memory_limit = 1G
max_file_uploads= 30
max_execution_time = 3600
max_input_time = 3600

输入完,键盘点Esc,再输入

:wq

退出保存

之后,关闭容器,重启容器

 

还有一种编辑方法,是通过 docker cp 拷贝进行修改,以下是说明例子,看例子应该知道怎么用(sudo要不要写取决于你的权限)

将容器中的文件拷贝出来

sudo docker cp 容器ID:/etc/mysql/my.cnf /home/tom/

将容器中的文件拷贝回去

sudo docker cp /home/tom/my.cnf  容器ID:/etc/mysql/


多平台文件备份神器syncthing(手机电脑同步备份)

完整安装代码:(建议-p端口不要修改)

docker run -d --name syncthing --restart=unless-stopped -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp -p 21027:21027/udp -v 宿主机目录/syncthing:/var/syncthing syncthing/syncthing

要是局域网使用,就不需要再21027端口和22000端口上使用udp协议,直接tcp协议就行,此时精简安装代码(推荐):

docker run -d --name syncthing --restart=unless-stopped -p 8384:8384 -p 22000:22000 -v 宿主机目录/syncthing:/var/syncthing syncthing/syncthing

安装好后,给文件夹权限:

chmod -R 777 宿主机目录/syncthing

 

▶Syncthing官网

安装包下载:

▶Windows客户端下载

▶MacOS客户端下载

▶安卓客户端


画板项目

安装命令:

docker run --rm -dit --name excalidraw -p 宿主机端口:80 excalidraw/excalidraw:latest


Filerun网盘搭建

安装命令:

docker run -d \
--restart unless-stopped \
--name filerun \
-p 宿主机端口:80 \
-v 宿主机目录/filerun/html:/var/www/html \
-v 宿主机目录/filerun/user-files:/user-files \
-e FR_DB_HOST=数据库地址 \
-e FR_DB_PORT=3306(数据库端口,一般3306或3307) \
-e FR_DB_NAME=filerun(数据库名称) \
-e FR_DB_USER=filerun(数据库用户名) \
-e FR_DB_PASS=数据库密码 \
-e APACHE_RUN_USER=www-data \
-e APACHE_RUN_USER_ID=33 \
-e APACHE_RUN_GROUP=www-data \
-e APACHE_RUN_GROUP_ID=33 \
filerun/filerun

界面中文翻译包:获取

把翻译包放在这里/filerun/html/system/data/translations

进入界面,设置汉化:

Control panel –> Interface –> Language,选择:chinese.php


开源流程图编辑平台:drawio

安装命令:

docker run -itd --name="draw" --restart=unless-stopped -p 宿主机端口:8080 jgraph/drawio

如图所示:


nextlist网盘

安装命令:

docker run -d \
--name=nextlist \
-p 宿主机端口:80 \
-v /宿主机目录/nextlist/config:/app/config/ \
-v /宿主机目录/nextlist/data:/data \
--restart=unless-stopped \
mrlee326/nextlist:latest

 

该项目处于初始阶段,是用GO语言写的,整体使用体验很一般,作者应该会努力更新吧!

▶该项目的github地址


问答社区论坛answer搭建

安装命令:

docker run -d --name answer --restart=unless-stopped -p 宿主机端口:80 -v /宿主机目录/answer:/data answerdev/answer:latest

创建数据库:

用phpmyadmin进入Mariadb创建一个answer的数据库:账号/新增用户账号/创建与账号相同名称的数据库answer,并授予所有权限


tasks.md随记笔记

安装命令:

docker run -d \
--name tasks.md \
-e PUID=1000 \
-e PGID=1000 \
-e TITLE=”MD笔记站点名称” \
-p 宿主机端口:8080 \
-v /path/to/cards:/api/files \
-v /path/to/styles:/api/static/stylesheets \
--restart unless-stopped \
baldissaramatheus/tasks.md:latest

修改主题:

需要修改 styles 目录中的 index.css 文件,主题样式在color-themes文件夹里,有3个样式,如将index.css文件中第二行从 @import url(./color-themes/adwaita.css); 改为 @import url(./color-themes/nord.css); 。刷新网页后主题就会更换


易有云

因为易有云需要绑定手机后才能用,所有我就不写了,直接提供官方文档,或者直接使用iStoreOS,iStoreOS是一个深度定制的openwrt系统,好像能不绑定直接使用易有云的一小部分功能:


docker cli转docker-compose

docker run -d --name composerize --restart=unless-stopped -p 宿主机端口:8080 icedream/composerize:latest


思维导图SimpleMindMap

docker run -d \
--restart unless-stopped \
--name simplemindmap \
-p 3055:8080 \
shuiche/mind-map

Mfun-轻量影视管理平台

估计作者就是给openwrt平台搭建的影视管理平台,官网和github都没提供啥内容,使用体验来讲挺一般的,我是从iStoreOS那里看来的,提供下其它平台用docker cli安装教程

mkdir -p /宿主机目录/mfun/{configs,caches,mnt}

docker run -d \
--name=mfun \
-e TZ=Asia/Shanghai \
-p 宿主机端口:8990 \
-v /宿主机目录/mfun/configs:/mfun/store \
-v /宿主机目录/caches:/mfun/tmp \
-v /宿主机目录/mnt:/mnt:rslave \
--restart=unless-stopped \
carseason/mfun:laster


photoprism-智慧相册管理平台

docker cli命令

docker run -d \
--name photoprism \
--security-opt seccomp=unconfined \
--security-opt apparmor=unconfined \
-p 宿主机端口:2342 \
-e PHOTOPRISM_UPLOAD_NSFW=”true” \
-e PHOTOPRISM_ADMIN_PASSWORD=”insecure” \
-v /宿主机目录/photoprism/Example:/photoprism/originals/Example \
-v /宿主机目录/photoprism/pictures:/photoprism/originals \
--restart=unless-stopped \
photoprism/photoprism


Sun-Panel导航

docker run -d --restart=always -p 宿主机端口:3002 \
-v /宿主机目录/sun-panel/conf:/app/conf \
-v /宿主机目录/sun-panel/uploads:/app/uploads \
-v /宿主机目录/sun-panel/database:/app/database \
--name sun-panel \
hslr/sun-panel

 

账号:admin@sun.cc

密码:12345678


Zdir Pro

docker cli命令

docker run --privileged -d --name="zdir" \
-v /宿主机目录/zdir/data:/opt/zdir/data \
-v /宿主机目录/zdir/data/public:/opt/zdir/data/public \
-v /宿主机目录/zdir/data/private:/opt/zdir/data/private \
-p 宿主机端口:6080 \
--restart=unless-stopped \
helloz/zdir:4

 


Melody-音乐精灵

docker cli命令

docker run -d \
--restart unless-stopped \
--name melody \
-p 宿主机端口:5566 \
-v 宿主机目录/melody/config:/app/backend/.profile \
-v 宿主机目录/melody/downloads:/app/melody-data \
foamzou/melody:latest

 

默认密码:melody