前言 非常感谢我不是咕咕鸽
大神,从他的博客和视频教程中学到了很多关于vps和docker建站的知识。在学习搭建的时候做了下笔记,方便下次使用。下面整理汇总的docker项目大多是他推荐和分享的,汇总的是搭建网站过程中最关键的docker命令或者docker-compose文件,并非适合小白直接使用,小白可以先去大佬的博客学习下基础知识。大佬博客地址:https://blog.laoda.de/
安装docker和docker-compose 安装docker 官方地址:
https://docs.docker.com/engine/install/debian/
非大陆服务器安装docker 1 2 3 wget -qO- get.docker.com | bash docker -v systemctl enable docker
注意:如果出现sudo:unable to resolve host [hostname]
,可以编辑nano/etc/hosts。然后在localhost后面空一格,打上[hostname]你对应的hostname内容。
国内服务器安装docker 1 2 3 curl -sSL https://get.daocloud.io/docker | sh docker -v systemctl enable docker
卸载docker 1 2 3 sudo apt-get purge docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
安Dockercompose 非大陆服务器安装docker-compose 1 2 3 sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s) -$(uname -m) " -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version
国内服务器安装docker-compose 1 2 3 curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-composedocker-compose --version
docker项目的更新与卸载 docker命令安装 停止和卸载:
1 2 3 4 5 docker ps docker inspect 容器的名字 docker stop memos docker rm -f memos rm -rf /root/data/docker_data/memos
docker-compose安装 停止和卸载:
1 2 3 cd /root/data/docker_data/lsky-pro docker-compose down rm -rf /root/data/docker_data/lsky-pro
更新:
1 2 3 cd /root/data/docker_data/lsky-pro docker-compose pull docker-compose up -d
其他 修改docker配置 以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘。
1 2 3 4 5 6 7 8 9 10 11 12 13 cat > /etc/docker/daemon.json <<EOF { "log-driver": "json-file", "log-opts": { "max-size": "20m", "max-file": "3" }, "ipv6": true, "fixed-cidr-v6": "fd00:dead:beef:c0::/80", "experimental":true, "ip6tables":true } EOF
重启Docker服务 1 systemctl restart docker
docker项目管理 所有的docker项目放到一个文件夹下,这样如果换服务器或者想要备份,都会很方便。
1 mkdir -p data/docker_data
查看docker容器内部ip npm和其它项目都在同一个服务器的时候,代理目标可以使用容器内部ip
docker命令转docker-compose文件格式 网址:https://www.composerize.com/
github地址:https://github.com/magicmark/composerize
docker项目的三个主要步骤
运行docker命令或者docker-compose,一般此时网站可以使用ip+端口号访问
使用npm给网站做反向代理,添加ssl证书,可以安全访问网站
根据具体项目做具体操作
以下所有项目的安装主要提供项目的docker命令行代码和docker-compose代码
安装Nginx Proxy Manage 官网:
https://nginxproxymanager.com/
创建npm文件夹 1 mkdir -p data/docker_data/npm
在npm文件夹下创建docker-compose.yml文件 1 touch docker-compose.yml
打开docker-compose.yml文件,粘贴以下代码
1 2 3 4 5 6 7 8 9 10 11 12 version: '3' services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
运行docker-compose
默认登录名和密码 1 2 Email: admin@example.com Password: changeme
安装兰空图床 在dGitHub原项目地址:
https://github.com/lsky-org/lsky-pro(2.3k star)
官网地址:
https://www.lsky.pro/
文档地址:
https://docs.lsky.pro/
Docker镜像地址:
https://hub.docker.com/r/dko0/lsky-pro
PicGo插件:lankong:
https://hellodk.cn/post/964
docker项目下创建docker-compose.yml 1 2 3 mkdir -p /root/data/docker_data/lsky-procd /root/data/docker_data/lsky-protouch docker-compose.yml
docker-compose.yml填入以下内容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 version: '3' services: lsky-pro: container_name: lsky-pro image: dko0/lsky-pro restart: always volumes: - /root/data/docker_data/lsky-pro/lsky-pro-data:/var/www/html ports: - 7791:80 environment: - MYSQL_HOST=mysql - MYSQL_DATABASE=lsky-pro - MYSQL_USER=lsky-pro - MYSQL_PASSWORD=lsky-pro mysql: image: mysql:8.0 container_name: lsky-pro-db restart: always environment: - MYSQL_DATABASE=lsky-pro - MYSQL_USER=lsky-pro - MYSQL_PASSWORD=lsky-pro - MYSQL_ROOT_PASSWORD=lsky-pro volumes: - /root/data/docker_data/lsky-pro/db:/var/lib/mysql
数据库密码可以更改,改了就要记住。后面安装图床时需要用到上面的内容。
运行docker-compose
访问网页 浏览器地址栏输入ip:7791
更新docker-compose项目 1 2 3 4 5 cp -r /root/data/docker_data/lsky-pro/lsky-pro-data /root/data/docker_data/lsky-pro/lsky-pro-data.archive cp -r /root/data/docker_data/lsky-pro/db /root/data/docker_data/lsky-pro/db.archive cd /root/data/docker_data/lsky-pro docker-compose pull docker-compose up -d
卸载docker-compose项目 1 2 3 cd /root/data/docker_data/lsky-pro docker-compose down rm -rf /root/data/docker_data/lsky-pro
安装easyimage图床 GitHub原项目地址:
https://github.com/icret/EasyImages2.0
Docker镜像:
https://hub.docker.com/r/ddsderek/easyimage
docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 version: '3.3' services: easyimage: image: ddsderek/easyimage:latest container_name: easyimage ports: - '8080:80' environment: - TZ=Asia/Shanghai - PUID=1000 - PGID=1000 volumes: - '/root/data/docker_data/easyimage/config:/app/web/config' - '/root/data/docker_data/easyimage/i:/app/web/i' restart: unless-stopped
注意事项 网页出现格式混乱 修改/root/data/docker_data/easyimage/config/config.php里面的内容
把domain和imgurl后面的url改成自己的域名
确保是https
使用npm反向代理的过程,千万不要勾选Block Common Exploits
,否则上传图片得缩率图会无法显示。
反向代理后一定要修改,easyimg项目下得config.php
文件,把domain
和imgurl
后面的url换成反代的域名。
配置picgo
自定义body:{“token”:”8337effca0ddfcd9c5899f3509b23657”}
api地址:https:\域名\indext.php
post参数名:image
json路径:url
安装bitwarden密码管理工具 github项目地址:https://github.com/dani-garcia/vaultwarden
docker命令行 1 2 3 4 5 6 7 docker run -d --name bitwardenrs \ --restart unless-stopped \ -e WEBSOCKET_ENABLED=true \ -v /root/data/docker_data/bitwarden/:/data/ \ -p 6666:80 \ -p 3012:3012 \ vaultwarden/server:latest
禁止新用户注册 1 2 3 4 5 6 7 8 9 10 docker stop bitwardenrs docker rm -f bitwardenrs docker run -d --name bitwardenrs \ --restart unless-stopped \ -e SIGNUPS_ALLOWED=false \ -e WEBSOCKET_ENABLED=true \ -v /root/data/docker_data/bitwarden/:/data/ \ -p 6666:80 \ -p 3012:3012 \ vaultwarden/server:latest
安装rustdesk GitHub原项目地址:
https://github.com/rustdesk/rustdesk
Docker镜像地址:
https://hub.docker.com/r/rustdesk/rustdesk-server/tags
官网地址:
https://rustdesk.com
文档地址:
https://rustdesk.com/docs/zh-cn/self-host/
docker-compose代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 version: '3' networks: rustdesk-net: external: false services: hbbs: container_name: hbbs ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21118:21118 image: rustdesk/rustdesk-server:latest command : hbbs -r hbbs.example.com:21117 volumes: - ./hbbs:/root networks: - rustdesk-net depends_on: - hbbr restart: unless-stopped hbbr: container_name: hbbr ports: - 21117:21117 - 21119:21119 image: rustdesk/rustdesk-server:latest command : hbbr volumes: - ./hbbr:/root networks: - rustdesk-net restart: unless-stopped
安装wallabag GitHub原项目地址:
https://github.com/wallabag/wallabag
官网地址:
https://wallabag.org/
官方文档地址:
https://doc.wallabag.org/en/admin/installation/requirements.html
官方镜像:
https://hub.docker.com/r/wallabag/wallabag
docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 version: '3' services: wallabag: image: wallabag/wallabag restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=wallaroot - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql - SYMFONY__ENV__DATABASE_HOST=db - SYMFONY__ENV__DATABASE_PORT=3306 - SYMFONY__ENV__DATABASE_NAME=wallabag - SYMFONY__ENV__DATABASE_USER=wallabag - SYMFONY__ENV__DATABASE_PASSWORD=wallapass - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4 - SYMFONY__ENV__MAILER_HOST=127.0.0.1 - SYMFONY__ENV__MAILER_USER=~ - SYMFONY__ENV__MAILER_PASSWORD=~ - SYMFONY__ENV__FROM_EMAIL=email@lyr.im - SYMFONY__ENV__DOMAIN_NAME=https://wallabag.laoda.de - SYMFONY__ENV__SERVER_NAME="Roy's Wallabag" ports: - 8080:80 volumes: - /root/data/docker_data/wallabag/images:/var/www/wallabag/web/assets/images healthcheck: test : ["CMD" , "wget" ,"--no-verbose" , "--tries=1" , "--spider" , "http://localhost" ] interval: 1m timeout : 3s depends_on: - db - redis db: image: mariadb restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=wallaroot volumes: - /root/data/docker_data/wallabag/data:/var/lib/mysql healthcheck: test : ["CMD" , "mysqladmin" ,"ping" , "-h" , "localhost" ] interval: 20s timeout : 3s redis: image: redis:alpine restart: unless-stopped healthcheck: test : ["CMD" , "redis-cli" , "ping" ] interval: 20s timeout : 3s
使用说明 安装Zfile 文档地址:
https://docs.zfile.vip
社区地址:
https://bbs.zfile.vip
项目源码:
https://github.com/zhaojun1998/zfile
项目源码:
https://github.com/zhaojun1998/zfile
前端源码:
https://github.com/zhaojun1998/zfile-vue
dockercompose文件 1 2 3 4 5 6 7 8 9 10 11 12 version: '3.3' services: zfile: container_name: zfile restart: always ports: - '8080:8080' volumes: - './db:/root/.zfile-v4/db' - './logs:/root/.zfile-v4/logs' - './data:/root/.zfile-v4/data' image: zhaojun1998/zfile
安装为知笔记 参考这个:
https://breakthewa11.com/archives/docker-install-minimalist.html
docker命令 1 docker run --name wiz --restart=always -it -d -v ~/data/docker_data/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 8123:80 -p 9269:9269/udp wiznote/wizserver
更新 1 2 3 4 docker stop wiz docker rm wiz docker pull wiznote/wizserver:latest docker run --name wiz --restart=always -it -d -v ~/data/docker_data/wizdata:/wiz/storage -v /etc/localtime:/etc/localtime -p 8123:80 -p 9269:9269/udp wiznote/wizserver
卸载 1 2 3 docker stop wiz docker rm -f wiz rm -rf ~/data/docker_data/wizdata
参考这个:
https://ttrss.henry.wang/zh/#%E5%85%B3%E4%BA%8E
docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 version: "3" services: service.rss: image: wangqiru/ttrss:latest container_name: ttrss ports: - 181:80 environment: - SELF_URL_PATH=http://localhost:181/ - DB_PASS=ttrss - PUID=1000 - PGID=1000 volumes: - feed-icons:/var/www/feed-icons/ networks: - public_access - service_only - database_only stdin_open: true tty : true restart: always service.mercury: image: wangqiru/mercury-parser-api:latest container_name: mercury networks: - public_access - service_only restart: always service.opencc: image: wangqiru/opencc-api-server:latest container_name: opencc environment: - NODE_ENV=production networks: - service_only restart: always database.postgres: image: postgres:13-alpine container_name: postgres environment: - POSTGRES_PASSWORD=ttrss volumes: - ~/data/docker_data/data:/var/lib/postgresql/data networks: - database_only restart: always volumes: feed-icons: networks: public_access: service_only: internal: true database_only: internal: true
安装joplin cloud GitHub原项目地址:
https://github.com/laurent22/joplin
Docker镜像地址:
https://hub.docker.com/r/joplin/server
官网地址:
https://joplinapp.org/
docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 version: '3' services: db: image: postgres:13 volumes: - ./data/postgres:/var/lib/postgresql/data ports: - "5432:5432" restart: unless-stopped environment: - POSTGRES_PASSWORD=changeme - POSTGRES_USER=username - POSTGRES_DB=joplin app: image: joplin/server:latest depends_on: - db ports: - "22300:22300" restart: unless-stopped environment: - APP_PORT=22300 - APP_BASE_URL=https://your.domain.com - DB_CLIENT=pg - POSTGRES_PASSWORD=changeme - POSTGRES_DATABASE=joplin - POSTGRES_USER=username - POSTGRES_PORT=5432 - POSTGRES_HOST=db
更新 1 2 3 4 cp -r /root/data/docker_data/joplin /root/data/docker_data/joplin.archive cd /root/data/docker_data/joplin docker-compose pull docker-compose up -d
卸载 1 2 3 cd /root/data/docker_data/joplin docker-compose down rm -rf /root/data/docker_data/joplin
安装qBIttorrent https://github.com/linuxserver/docker-qbittorrent
拉取镜像 1 docker pull linuxserver/qbittorrent
docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 version: "2" services: qbittorrent: image: linuxserver/qbittorrent:4.4.1 container_name: qbittorrent environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai - UMASK_SET=022 - WEBUI_PORT=8081 volumes: - /root/data/docker_data/qBittorrent/config:/config - /root/data/docker_data/qBittorrent/downloads:/downloads ports: - 6881:6881 - 6881:6881/udp - 8081:8081 restart: unless-stopped network_mode: bridge
默认登录用户名:admin
密码:adminadmin
博客搭建——typecho 创建安装目录
1 2 mkdir -p /root/data/docker_data/typechocd /root/data/docker_data/typecho
创建三个文件
myseq文件 1 2 cd /root/data/docker_data/typechotouch mysql.env
填入以下内容
1 2 3 4 MYSQL_ROOT_PASSWORD=root_pass MYSQL_DATABASE=typecho MYSQL_USER=username MYSQL_PASSWORD=password
数据库用户名和密码可以自己改动
php-fpm 1 2 3 4 cd /root/data/docker_data/typechomkdir phpcd phptouch Dockerfile
填入以下内容
1 2 3 4 5 FROM php:7.3.29-fpm RUN apt-get update \ && docker-php-ext-install pdo_mysql \ && echo "output_buffering = 4096" > /usr/local/etc/php/conf.d/php.ini \ && echo "date.timezone = PRC" >> /usr/local/etc/php/conf.d/php.ini
nginx 1 2 3 4 cd /root/data/docker_data/typechomkdir nginxcd nginxtouch default.conf
填入以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 server { listen 80 default_server; root /var/www/html; index index.php; access_log /var/log/nginx/typecho_access.log main; if (!-e $request_filename ) { rewrite ^(.*)$ /index.php$1 last ; } location / { index index.html index.htm index.php; if (!-e $request_filename ) { rewrite . /index.php last ; } } location ~ \.php(.*)$ { fastcgi_pass php:9000 ; fastcgi_index index.php; fastcgi_param PATH_TRANSLATED $document_root $fastcgi_path_info ; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$ ; fastcgi_param PATH_INFO $fastcgi_path_info ; fastcgi_param SCRIPT_NAME $fastcgi_script_name ; fastcgi_param SCRIPT_FILENAME $document_root $fastcgi_script_name ; include fastcgi_params; } }
下载源码 1 2 3 4 cd /root/data/docker_data/typecho/typechowget https://github.com/typecho/typecho/releases/download/v1.2.0/typecho.zip apt install zip -y unzip typecho.zip
docker-compose文件 1 2 cd /root/data/docker_data/typechonano docker-compose.yml
填入以下内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 version: "3" services: nginx: image: nginx ports: - "8223:80" restart: always environment: - TZ=Asia/Shanghai volumes: - ./typecho:/var/www/html - ./nginx:/etc/nginx/conf.d - ./logs:/var/log/nginx depends_on: - php networks: - web php: build: php restart: always expose: - "9000" volumes: - ./typecho:/var/www/html environment: - TZ=Asia/Shanghai depends_on: - mysql networks: - web mysql: image: mysql:5.7 restart: always environment: - TZ=Asia/Shanghai expose: - "3306" volumes: - ./mysql/data:/var/lib/mysql - ./mysql/logs:/var/log/mysql - ./mysql/conf:/etc/mysql/conf.d env_file: - mysql.env networks: - web networks: web:
更新 1 2 3 cd /root/data/docker_data/typecho docker-compose pull docker-compose up -d
卸载 1 2 3 4 5 sudo -i cd /root/data/docker_data/typecho docker-compose down cd ~rm -rf /root/data/docker_data/typecho
博客搭建——wordpress 创建安装目录 1 2 3 mkdir -p /root/data/docker_data/wordpresscd /root/data/docker_data/wordpresstouch docker-compose.yml
解决上传文件大小限制 默认php设置的上传文件大小为2M,我们需要调整一下。参考:https://github.com/docker-library/wordpress/issues/375
1 2 cd /root/data/docker_data/wordpresstouch uploads.ini
输入下面的内容:
1 2 3 file_uploads = On upload_max_filesize = 256M post_max_size = 256M
docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 version: '3.1' services: wordpress: image: wordpress restart: always ports: - 8080:80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: - /root/data/docker_data/wordpress/data:/var/www/html - /root/data/docker_data/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini db: image: mysql:5.7 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: '1' volumes: - /root/data/docker_data/wordpress/db:/var/lib/mysql
查看上传文件的限制是否修改
1 docker exec 你的wp容器id php -i | grep upload
可以使用docker ps查看wp容器id
出现“因为我们不能复制一些文件,升级未被安装,这通常是因为存在不一致的文件权限”的错误 1 2 3 4 cd /root/data/docker_data/wordpress/datachmod -R 777 wp-contentdocker-compose down docker-compose up -d
上传主题,出现“您点击的链接已过期” 1 2 cd /root/data/docker_data/wordpress/datavim .htaccess
在.htaccess最后面加上:
1 2 3 4 5 php_value max_execution_time 300 php_value upload_max_filesize 256M php_value post_max_size 256M php_value memory_limit 128M php_value max_input_vars 5000
更新 1 2 3 cd /root/data/docker_data/wordpress docker-compose pull docker-compose up -d
卸载 1 2 3 4 5 sudo -i cd /root/data/docker_data/wordpress docker-compose down cd ~rm -rf /root/data/docker_data/wordpress
博客搭建——Halo 2.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 version: "3" services: halo: image: halohub/halo:2.3.1 container_name: halo restart: on-failure:3 depends_on: halodb: condition: service_healthy networks: halo_network: volumes: - ./:/root/.halo2 ports: - "8090:8090" command : - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo - --spring.r2dbc.username=root - --spring.r2dbc.password=o - --spring.sql.init.platform=mysql - --halo.external-url=http://localhost:8090/ - --halo.security.initializer.superadminusername=admin - --halo.security.initializer.superadminpassword=P@88w0rd halodb: image: mysql:8.0.31 container_name: halodb restart: on-failure:3 networks: halo_network: command : - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true volumes: - ./mysql:/var/lib/mysql - ./mysqlBackup:/data/mysqlBackup ports: - "3306" healthcheck: test : ["CMD" , "mysqladmin" , "ping" , "-h" , "127.0.0.1" , "--silent" ] interval: 3s retries: 5 start_period: 30s environment: - MYSQL_ROOT_PASSWORD=o - MYSQL_DATABASE=halo networks: halo_network:
安装Drawio绘图工具 1 docker run -itd --restart=always --name="draw" -p 8083:8080 -p 8445:8443 jgraph/drawio
安装Snapdrop文件传输工具 docker命令 1 docker run -d -p 8080:80 linuxserver/snapdrop
docker-compose 1 2 3 4 5 6 7 8 9 10 11 12 13 14 version: "2.4" services: snapdrop: image: linuxserver/snapdrop:latest container_name: snapdrop environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai volumes: - /root/container/snapdrop:/config ports: - 80:80 restart: always
注意
:
使用nginx proxy manage反向代理时,必须勾选websockets support,否则会出现移动端和pc端一直连不上的情况Connection lost. Retry in 5 seconds...。
。
snapdrop服务必须是反向代理所在的服务器
有问题多使用docker-compose restart
重启服务
安装web端SSh工具 docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 version: '3.3' services: ywsjwebssh: container_name: ywsjwebssh ports: - '2222:5032' environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai restart: always image: jrohy/webssh
安装freenom域名自动续期程序 docker-compose文件 1 2 3 4 5 6 7 8 9 version: '3.3' services: freenom: container_name: freenom restart: always volumes: - .:/conf - ./logs:/app/logs image: luolongfei/freenom
修改.env文件。以qq邮箱为例
安装mdnice微信公众号排版工具 docker-compose文件 1 2 3 4 5 6 7 version: '3.3' services: mdnice: container_name: mdnice ports: - '9000:80' image: weihanli/mdnice
来源:https://blog.csdn.net/sD7O95O/article/details/115713045
类似知乎的开源问答平台——Answer Answer 官方网址
:https://answer.dev/ Answer 官方 GitHub
:https://github.com/answerdev/answer Answer 官方文档
:https://answer.dev/docs/installation/
docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 version: "3" services: answer: image: answerdev/answer ports: - '9008:80' restart: on-failure volumes: - ./answer-data:/data db: image: mariadb:10 command : --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: answer MYSQL_USER: answer MYSQL_PASSWORD: answer MYSQL_DATABASE: answer volumes: - ./mariadb:/var/lib/mysql restart: on-failure
更新answer 1 2 3 4 5 6 7 8 9 10 11 cd /root/data/docker_data/answerdocker-compose down cp -r /root/data/docker_data/answer/root/data/docker_data/hexo.archive docker-compose pull docker-compose up -d docker image prune
卸载answer 1 2 3 4 5 6 7 cd /root/data/docker_data/answerdocker-compose down cd ..rm -rf /root/data/docker_data/answer
安装多平台备份duplicati GitHub原项目地址:
https://github.com/duplicati/duplicati
官网地址:
https://www.duplicati.com/download
docker-compose文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 version: "2.1" services: duplicati: image: lscr.io/linuxserver/duplicati container_name: duplicati environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai volumes: - /root/data/docker_data/duplicati/config:/config - /root/data/docker_data/duplicati/backups:/backups - /root/data:/source ports: - 8080:8200 restart: unless-stopped
onenav导航站 GitHub原项目地址:
https://github.com/helloxz/onenav
1 2 3 4 5 6 7 8 9 10 11 12 version: '3.3' services: onenav: container_name: onenav ports: - '8956:80' environment: - USER=xiaoz - PASSWORD=xiaoz.me volumes: - '/root/data/docker_data/onenav:/data/wwwroot/default/data' image: helloz/onenav
网站监控uptime-kuma https://github.com/louislam/uptime-kuma
1 2 3 4 5 6 7 8 9 10 11 version: '3.3' services: uptime-kuma: image: louislam/uptime-kuma container_name: uptime-kuma restart: always volumes: - ./uptime-kuma:/app/data ports: - 9090 :3001
alist https://alist.nn.ci/zh/guide/
1 2 3 4 5 6 7 8 9 10 11 12 13 version: '3.3' services: alist: image: xhofe/alist:latest container_name: alist restart: always ports: - "5244:5244" environment: - TZ=Asia/Shanghai volumes: - ./config:/opt/alist/data
重置密码
1 2 docker exec -it alist /bin/bash ./alist admin set "新密码"
PDF工具箱 https://github.com/Stirling-Tools/Stirling-PDF
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 version: '3.3' services: stirling-pdf: image: frooodle/s-pdf ports: - '8080:8080' volumes: - ./trainingData:/usr/share/tessdata - ./extraConfigs:/configs environment: - DOCKER_ENABLE_SECURITY=false - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false - LANGS=en_GB