Docker笔记


一.docker和docker-compose

1、服务器安装docker-compose

安装docker

sudo yum check-update
sudo yum -y install docker-ce
sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker

2、openwrt(默认预置了docker-compose)安装docker-compose

opkg update
opkg install python3
opkg install python3-pip
pip install docker-compose==1.23.2
pip install docker-compose

3、群晖已默认预置了docker-compose

二.portainer

1、portainer-ce汉化版一键自动安装代码

群晖X86 CPU一键安装

sh -c "$(curl -kfsSl https://gitee.com/expin/public/raw/master/onex86.sh)"

N1等ARM64架构CPU一键安装

sh -c "$(curl -kfsSl https://gitee.com/expin/public/raw/master/one.sh)"

默认9999端口,重新安装portainer。

手动安装portainer

docker run -d -p 8000:8000 -p 9999:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /volume1/docker/portainer:/data portainer/portainer-ce

2、为了让openwrt上的portainer能够接管群晖的portainer,需要开通群晖上portainer的对外访问权限,让群晖的docker服务允许通过TCP进行连接

用SSH连到群晖的命令行上,编辑/var/packages/Docker/etc/dockerd.json这个文件:

sudo vi /var/packages/Docker/etc/dockerd.json

添加如下代码:

"hosts" : [ "tcp://192.168.50.50:2375", "unix:///var/run/docker.sock" ],

3、在openwrt中添加群晖的oportainer

打开IP:9999,端点→添加端点

三.青龙和ninja

1、openwrt和主机 安装青龙

docker run -dit \
-v /opt/docker/qinglong/config:/ql/config \
-v /opt/docker/qinglong/log:/ql/log \
-v /opt/docker/qinglong/db:/ql/db \
-v /opt/docker/qinglong/scripts:/ql/scripts \
-v /opt/docker/qinglong/repo:/ql/repo \
-v /opt/docker/qinglong/raw:/ql/raw \
-v /opt/docker/qinglong/jbot:/ql/jbot \
--network host \
-e ENABLE_HANGUP=true \
-e ENABLE_TG_BOT=true \
-e ENABLE_WEB_PANEL=true \
--name qinglong \
--hostname qinglong \
--restart always \

docker-compose代码:

---
version: "2"
services:
  qinglong:
    image: whyour/qinglong:latest
    container_name: qinglong
    restart: unless-stopped
    tty: true
    ports:
      - 5700:5700
      - 5701:5701
    environment:
      - ENABLE_HANGUP=true
      - ENABLE_WEB_PANEL=true
    volumes:
      - /opt/docker/qinglong/config:/ql/config
      - /opt/docker/qinglong/log:/ql/log
      - /opt/docker/qinglong/db:/ql/db
      - /opt/docker/qinglong/repo:/ql/repo
      - /opt/docker/qinglong/raw:/ql/raw
      - /opt/docker/qinglong/scripts:/ql/scripts
      - /opt/docker/qinglong/jbot:/ql/jbot
      - /opt/docker/qinglong/ninja:/ql/ninja

2、群晖 安装青龙

docker run -dit \
-v /volume1/docker/qinglong/config:/ql/config \
-v /volume1/docker/qinglong/log:/ql/log \
-v /volume1/docker/qinglong/db:/ql/db \
-v /volume1/docker/qinglong/scripts:/ql/scripts \
-v /volume1/docker/qinglong/repo:/ql/repo \
-v /volume1/docker/qinglong/raw:/ql/raw \
-v /volume1/docker/qinglong/jbot:/ql/jbot \
--network host \
-e ENABLE_HANGUP=true \
-e ENABLE_TG_BOT=true \
-e ENABLE_WEB_PANEL=true \
--name qinglong \
--hostname qinglong \
--restart always \

docker-compose代码:

---
version: "2" 
services:
  qinglong:
    image: whyour/qinglong:latest
    container_name: qinglong
    restart: unless-stopped
    tty: true
    ports:
      - 5700:5700
      - 5701:5701
    environment:
      - ENABLE_HANGUP=true
      - ENABLE_WEB_PANEL=true
    volumes:
      - /volume1/docker/qinglong/config:/ql/config
      - /volume1/docker/qinglong/log:/ql/log
      - /volume1/docker/qinglong/db:/ql/db
      - /volume1/docker/qinglong/repo:/ql/repo
      - /volume1/docker/qinglong/raw:/ql/raw
      - /volume1/docker/qinglong/scripts:/ql/scripts
      - /volume1/docker/qinglong/jbot:/ql/jbot
      - /volume1/docker/qinglong/ninja:/ql/ninja

3、登录qinglong

登录ip:5700 重置一下密码。
/opt/docker/qinglong

进入容器

ql为容器名 本文机器容器名为qinglong

docker exec -it qinglong bash
最主要的是下面安装
执行以下命令

git clone https://github.com/MoonBegonia/ninja.git /ql/ninja
cd /ql/ninja/backend
pnpm install
pm2 start
cp sendNotify.js /ql/scripts/sendNotify.js

打开青龙configs文件夹的extra.sh文件
将以下内容粘贴进去。

cd /ql/ninja/backend
git pull -f
pnpm install
pm2 start
cp sendNotify.js /ql/scripts/sendNotify.js

Ninja更新方法

docker exec -it qinglong bash
cd /ql/ninja/backend
git pull
pm2 start

注意事项

重启后务必执行一次 ql extra 保证 Ninja 配置成功。 
更新 Ninja 只需要在容器中 ninja/backend 目录执行 git pull 然后 pm2 start 
Qinglong 需要在登录状态(auth.json 中有 token)

config.sh 修改2处位置

## 由于github仓库拉取较慢,所以会默认添加代理前缀,如不需要请移除
GithubProxyUrl=""

## 设置定时任务执行的超时时间,默认1h,后缀"s"代表秒(默认值), "m"代表分, "h"代表小时, "d"代表天
CommandTimeoutTime="1h"

## 设置批量执行任务时的并发数,默认同时执行5个任务
MaxConcurrentNum="5"

## 在运行 task 命令时,随机延迟启动任务的最大延迟时间
## 默认给javascript任务加随机延迟,如 RandomDelay="300" ,表示任务将在 1-300 秒内随机延迟一个秒数,然后再运行,取消延迟赋值为空
RandomDelay="300"

## 如果你自己会写shell脚本,并且希望在每次运行 ql update 命令时,额外运行你的 shell 脚本,请赋值为 "true",默认为true
EnableExtraShell="true"

## 是否自动启动bot,默认不启动,设置为true时自动启动,目前需要自行克隆bot仓库所需代码,存到ql/repo目录下,文件夹命名为dockerbot
AutoStartBot=""

## 安装bot依赖时指定pip源,默认使用清华源,如不需要源,设置此参数为空
PipMirror="https://pypi.tuna.tsinghua.edu.cn/simple"

## 通知环境变量
## 1. Server酱
## https://sct.ftqq.com
## 下方填写 SCHKEY 值或 SendKey 值
export PUSH_KEY="SCT22411TG9cNqivT5TZimHDywn8dqpgO"

4、配置更新文件

推荐安装这一个就够了,在青龙右上角里面任务里添加。 时间写早上8点更新:
0 8 * * *

ql repo https://github.com/yuannian1112/jd_scripts.git "jd_|jx_|getJDCookie" "activity|backUp" "^jd[^_]|USER|utils" "main"

备用,暂时不添加

ql repo https://github.com/Annyoo2021/scripts.git "jd_|jx_|long_|getJDCookie" "activity|backUp" "^jd[^_]|USER|ZooFaker_Necklace|JDJRValidator_Pure|JDJRValidator" "main"

5、京东扫码登录

IP:5701

四.mariadb和nextcloud创建

1、MariaDB创建

先建个mynet网络
然后在堆栈里面创建代码

---
version: "2"
services:
  mariadb:
    image: linuxserver/mariadb
    container_name: mariadb
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=password
      - TZ=Asia/Shanghai
    volumes:
      - /www/server/mariadb:/config
    ports:
      - 3306:3306
    networks:
      - mynet
    restart: unless-stopped
  adminer:
    image: adminer
    container_name: adminer
    environment:
      - ADMINER_DEFAULT_SERVER=mariadb
    ports:
      - 9091:9091
    networks:
      - mynet
    restart: unless-stopped
networks:
  mynet:
    external:
      name: mynet

2、访问adminer,新建nextcloud

http://ip:9091/

创建数据库,格式选utf8mb4_general_c

3、创建nextcloud

---
version: "2"
services:
  nextcloud:
    image: linuxserver/nextcloud
    container_name: linuxservernextcloud
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /www/server/nextcloud/config:/config
      - /www/server/nextcloud/data:/data
    networks:
      - mynet
    ports:
      - 5000:443
    restart: unless-stopped

networks:
  mynet:
    external:
      name: mynet

4、登录nextcloud

https://ip:5000/login
数据库那里选中间MySQL/MariaDB
root
password
nextcloud
mariadb

为了方便域名访问,在/www/server/nextcloud/config/config.php中添加
   1 => 'k.666666.xyz',

5、MariaDB 数据库和nextcloud的优化

在数据库容量小于1GB时,且内存足够的情况下:
MariaDB 数据库优化
编辑/www/server/mariadb/custom.cnf

[mysqld]
innodb_buffer_pool_size=1G
innodb_io_capacity=4000

PHP-FPM 的优化
编辑/www/server/nextcloud/config/php/www2.conf

[www]
pm = dynamic
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM