Linux 使用

服务器之间发送文件

1
2
3
4
5
6
7
8
# 保存镜像为 .tar 文件
docker save -o xiaozhi-esp32-server.tar xiaozhi-esp32-server:server_latest

# 将 .tar 文件传输到其他服务器上的 /data 目录下
scp xiaozhi-esp32-server.tar ip:/data

# 加载 .tar 文件为镜像
docker load -i /path/to/xiaozhi-esp32-server.tar

防火墙

 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
# 查看放行的端口
(base) [root@192 xiaozhi]# sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0f0
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 80/tcp 443/tcp
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

# 添加端口
(base) [root@192 xiaozhi]# sudo firewall-cmd --add-port=30800/tcp --permanent
success

# 重载防火墙配置,使更改生效
(base) [root@192 xiaozhi]# sudo firewall-cmd --reload

# 移除端口(使用 --remove-port 参数)
sudo firewall-cmd --remove-port=30800/tcp --permanent

# 重载防火墙配置,使更改生效
sudo firewall-cmd --reload

docker

常用命令

 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
# 进入容器
docker exec -it 容器名 /bin/bash

# 后台启动, -d代表后台启动,会应用配置
docker compose up -d

# 强制重建服务
docker compose up -d --build --force-recreate

# 仅启动 web 和 db 服务
docker compose up -d web db

# 仅停止容器(不删除)
docker compose stop

# 仅启动容器(不更新配置)
docker compose start

# 停止并清理
docker compose down

# 彻底清理(含数据卷)
docker compose down -v

# 查看容器运行状态
docker compose ps

# 实时查看日志
docker compose logs -f

# 查看服务依赖关系
docker compose config --services

# 查看日志
docker logs -f 容器id

docker-compose

数据卷讲解

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
services:
  sillytavern:
    build: ..
    container_name: sillytavern
    hostname: sillytavern
    image: ghcr.io/sillytavern/sillytavern:latest
    environment:
      - NODE_ENV=production
      - FORCE_COLOR=1
    ports:
      - "8000:8000"
    volumes:
      - "./config:/home/node/app/config"
      - "./data:/home/node/app/data"
      - "./plugins:/home/node/app/plugins"
      - "./extensions:/home/node/app/public/scripts/extensions/third-party"
    restart: unless-stopped

上面的 volumes 中,冒号左边的部分是主机上的路径,右边的部分是容器内部对应的路径。

讲解
  • ./config:/home/node/app/config 表示将当前目录下的 ./config 文件夹挂载到容器内的 /home/node/app/config 路径。
  • ./data:/home/node/app/data 表示将当前目录下的 ./data 文件夹挂载到容器内的 /home/node/app/data 路径。
  • ./plugins:/home/node/app/plugins 表示将当前目录下的 ./plugins 文件夹挂载到容器内的 /home/node/app/plugins 路径。
  • ./extensions:/home/node/app/public/scripts/extensions/third-party 表示将当前目录下的 ./extensions 文件夹挂载到容器内的 /home/node/app/public/scripts/extensions/third-party 路径。

0%