分类: Docker

记录关于docker一些常用的配置

  • 一键部署的Docker化claude-code-router解决方案

    一键部署的Docker化claude-code-router解决方案

    Docker Run

    docker run -d \
    --name ccr \
    -v /your/local/path/config.json:/root/.claude-code-router/config.json \ # 👈 关键映射
    -p 3456:3456 \ # 端口映射在下个步骤
    lie5860/claude-code-router

    Config.json

    {
      "Providers": [
        {
          "name": "openrouter",
          "api_base_url": "http://xxxx/v1/chat/completions",
          "api_key": "sk-xxxx",
          "models": [
            "gemini-2.5-pro",
            "gpt-4o-mini"
          ],
          "transformer": {
            "use": [
              [
                "maxtoken",
                {
                  "max_tokens": 1000000
                }
              ]
            ]
          }
        }
      ],
      "Router": {
        "default": "openrouter,gpt-4o-mini",
        "background": "openrouter,gpt-4o-mini",
        "think": "openrouter,gemini-2.5-pro",
        "longContext": "openrouter,gemini-2.5-pro"
      },
      "APIKEY": "sk-这个是保护你的 ccr 服务器安全。在你本地claude code 使用的时候 ANTHROPIC_API_KEY要填的值",
      "HOST": "0.0.0.0"
    }
  • ARM架构下安装mysql5.7

    ARM架构下安装mysql5.7

    场景:arm架构下,mysql只支持8.0 ,mysql5.7不支持,采用docker镜像模式安装

    docker pull biarms/mysql:5.7.30-linux-arm64v8 #支持arm架构的mysql 5.7镜像包

    1、拉取镜像

    docker pull biarms/mysql:5.7.30-linux-arm64v8

    2、创建mysql容器目录

    mkdir -p /data/mysql/{conf,data,logs}

    3、新建my.cnf配置文件

    [mysql]
    
    default-character-set=utf8
    
    socket=/var/lib/mysql/mysql.sock
    
    [mysqld]
    # 关闭二进制日志
    
    skip-log-bin
    
    #mysql5.7以后的不兼容问题处理
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    
    datadir=/var/lib/mysql
    
    socket=/var/lib/mysql/mysql.sock
    
    symbolic-links=0
    
    max_connections=200
    
    character-set-server=utf8
    
    default-storage-engine=INNODB
    
    lower_case_table_names=1
    
    max_allowed_packet=16M
    
    default-time_zone='+8:00'
    
    [mysqld_safe]
    
    log-error=/var/log/mysql/mysql.log
    
    pid-file=/var/run/mysql/mysql.pid
    
    !includedir /etc/mysql/conf.d/
    
    !includedir /etc/mysql/mysql.conf.d/

    4、运行容器

    docker run -p 3306:3306 --name mysql5.7 \
    -v ./data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
    -v ./data/mysql/logs:/var/log/mysql \
    -v ./data/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d biarms/mysql:5.7.30-linux-arm64v8

    5、说明

    -p 3306:3306 容器内部端口和服务器端口映射关联

    –privileged=true 设置mysql用户,否则外部不能使用root用户登录

    -v /data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf 服务器的

    /data/mysql/conf/my.cnf配置映射到docker的my.cnf

    -v /data/mysql/data:/var/lib/mysql 映射数据库的数据目录,避免docker删除重新运行mysql容器,导致数据丢失

    -e MYSQL_ROOT_PASSWORD=123456 设置root账号的密码

    –name mysql mysql:5.7 从docker镜像mysql:5.7启动一个容器,并设置容器的名称为mysql

    –character-set-server=utf8mb4 –collation-server=utf8mb4_general_ci 设置数据库默认编码

    原文链接:https://blog.csdn.net/qsm44593342/article/details/132775772

  • docker中mysql关闭二进制日志

    docker中mysql关闭二进制日志

    1.创建my.cnf文件

    # 删除旧的 my.cnf 文件(如果存在)
    rm -f my.cnf
    
    # 创建新的 my.cnf 文件并写入内容
    echo -e "[mysqld]\nskip-log-bin" > my.cnf
    
    # 确保文件权限正确
    chmod 644 my.cnf

    2.将my.cnf映射出来

    services:
      mysql:
        image: mysql
        container_name: mysql
        restart: always
        ports:
          - "3306:3306"
        volumes:
          - ./mysql:/var/lib/mysql
          - ./my.cnf:/etc/mysql/my.cnf
        environment:
          MYSQL_ROOT_PASSWORD: xxxxxxx
          MYSQL_USER: xiaogang
          MYSQL_PASSWORD: xxxxxxx
    

    3.重新启动docker容器

    docker-compose down
    docker-compose up -d
    

    4.进入容器验证

    docker exec -it mysql mysql -u root -p

    然后输入密码进入mysql中

    5.验证

    SHOW BINARY LOGS;
    
    #结果:ERROR 1381 (HY000): You are not using binary logging
    
    SHOW VARIABLES LIKE 'log_bin';
    
    #结果:OFF
  • docker-compose:mysql+redis+phpmyadmin

    docker-compose:mysql+redis+phpmyadmin

    创建my.cnf文件

    # 删除旧的 my.cnf 文件(如果存在)
    rm -f my.cnf
    
    # 创建新的 my.cnf 文件并写入内容
    echo -e "[mysqld]\nskip-log-bin" > my.cnf
    
    # 确保文件权限正确
    chmod 644 my.cnf
    

    docker-compose.yml文件

    version: '3'
    services:
      mysql:
        image: mysql
        container_name: mysql
        restart: always
        ports:
          - "3306:3306"
        volumes:
          - ./mysql:/var/lib/mysql
          - ./my.cnf:/etc/mysql/my.cnf
        environment:
          MYSQL_ROOT_PASSWORD: root密码
          MYSQL_USER: xiaogang
          MYSQL_PASSWORD: 用户密码
    
      redis:
        image: redis:alpine
        container_name: redis
        restart: always
        ports:
          - "6379:6379"
        volumes:
          - ./redis:/data
    
      phpmyadmin:
        image: phpmyadmin:latest
        container_name: myadmin
        restart: always
        ports:
          - "13306:80"
        environment:
          PMA_ARBITRARY: 1

    运行容器

    docker-compse up -d