• 云原生 | Docker - [常用镜像]


    §1 tomcat

    docker pull tomcat:jdk8-corretto-al2
    docker run -d -p 8080:8080 tomcat:jdk8-corretto-al2
    
    • 1
    • 2

    §2 mysql

    docker pull mysql:5.7
    docker run -d -p 13306:3306 -v /docker/mysql/5.7/log:/var/log/mysql -v /docker/mysql/5.7/data:/var/lib/mysql  -v /docker/mysql/5.7/conf:/etc/mysql/conf.d --privileged=true  -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
    
    • 1
    • 2

    指令说明

    • -d mysql 是个服务,需要后台运行
    • -p 主机上可能也有 mysql ,可能占用 3306,因此最好换个主机端口,上面指令中使用 13306
    • -v 挂载数据卷,将日志、数据、配置与容器解耦,防止停止、删除容器后上述内容丢失
      • -v /docker/mysql/5.7/log:/var/log/mysql 挂载日志目录
      • -v /docker/mysql/5.7/data:/var/lib/mysql 挂载数据目录
      • -v /docker/mysql/5.7/conf:/etc/mysql/conf.d 挂载配置目录
    • --privileged=true 打开数据卷权限
    • -e 配置环境变量

    docker-hub mysql 中解释了相关路径配置和参数配置,如
    在这里插入图片描述
    在这里插入图片描述


    远程连接 ERROR 2003
    查看 root 用户权限

    use mysql;
    select  User,authentication_string,Host from user;
    
    • 1
    • 2

    在这里插入图片描述

    添加 root 用户远程访问权限

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
    • 1
    • 2

    指定 mysql 字符集
    一般,容器中的默认字符集都是 ladin,若建库建表时也未指定字符集可能导致一系列问题,比如无法录入中文
    可以通过配置文件指定,配置文件目录是 docker run -v 中对应的目录

    vim /docker/mysql/5.7/conf/my.cnf
    
    • 1
    [client]
    default_character_set=utf8
    [mysqld]
    collation_server=utf8_general_ci
    character_set_server=utf8
    
    • 1
    • 2
    • 3
    • 4
    • 5

    重启容器,

    docker restart mysql容器的ID
    
    • 1

    §3 redis

    docker pull redis:6.0.8
    docker run -d -p 16379:6379 --privileged=true \
           -v /docker/redis/6.0.8/conf/redis.conf:/etc/redis/redis.conf \
           -v /app/redis/6.0.8/data:/data \
           redis:6.0.8 \
           redis-server /etc/redis/redis.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    指令说明

    • -d mysql 是个服务,需要后台运行
    • -p 主机上可能也有 redis,可能占用 6379,因此最好换个主机端口,上面指令中使用 16379
    • -v 挂载数据卷,将数据、配置与容器解耦,防止停止、删除容器后上述内容丢失
      • -v /docker/redis/6.0.8/conf/redis.conf:/etc/redis/redis.conf 挂载(指定)配置文件
      • -v /app/redis/6.0.8/data:/data 挂载数据目录
    • --privileged=true 打开数据卷权限
    • redis-server /etc/redis/redis.conf 用于指定 redis 服务启动时使用哪个配置文件的配置

    redis.conf 内容

    # 开启密码验证(可选)
    requirepass 123
    
    # 允许redis外地连接,需要注释掉绑定的IP
    # bind 127.0.0.1
    
    # 关闭保护模式(可选)
    protected-mode no
    
    # 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败
    daemonize no
    
    # 开启redis数据持久化, (可选)
    appendonly yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    JAVAEE三层架构详细解释以及代码分层编写
    Bean管理注解
    对角矩阵的压缩存储
    尚硅谷设计模式(五)原型模式
    python专属的Remote Produce Call框架:rpyc
    MIT 6.s081 lab3-pgtbl
    C语言程序设计(三)高级特性
    WebGL 根据模型矩阵的逆转置矩阵计算运动物体的光照效果
    [Linux] 网络层-----IP协议、ICMP协议、NAT技术
    Linux每日智囊
  • 原文地址:https://blog.csdn.net/ZEUS00456/article/details/126307690