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