zoukankan      html  css  js  c++  java
  • docker docker-compose编排服务运行测试mysql

    之前学习docker的时候,全部通过mysql原生的脚本运行脚本,太久没动之后脚本可能都忘记了。

    就是说不方便操作。换了个人操作之后,还需要交付脚本。而docker有个编排插件docker-compose就是专门干这事情的。百度了下还挺多文章的。

    然后依葫芦画瓢来一个,对比。

    准备资料:

    服务器一台:192.168.89.151

    安装 docker、docker-compose

    为了让网络都在一个环境中运行,创建私有网络。

    创建相应的文件夹用于挂载。

    开始。

    之前该干什么,还是干什么

    1、安装docker-compose

    curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    // 授权
    chmod +x /usr/local/bin/docker-compose
    // 重启服务
    systemctl restart docker

    2、创建私有网络mynetwork:

    docker network create --subnet=172.30.0.0/16 mynetwork
    // 查看网络mynetwork
    docker network list
    // 进入网络mynetwork查看 
    docker network inspect mynetwork

    3、创建宿主机文件夹目录

    // 数据目录data
    // 配置文件目录config
    // 日志目录log

    mkdir -p /home/soft/mysql/data
    mkdir -p /home/soft/mysql/config
    mkdir -p /home/soft/mysql/logs
    mkdir -p /home/soft/mysql2/data
    mkdir -p /home/soft/mysql2/config
    mkdir -p /home/soft/mysql2/logs

    // 创建配置文件my.cnf

    cd /home/soft/mysql/config
    vi my.cnf
    // 增加如下内容
    [mysqld]
    user=mysql
    character-set-server=utf8
    default_authentication_plugin=mysql_native_password
    default-storage-engine=INNODB
    sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    max_connections=1500
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8

    4、之前安装mysql的原始docker命令:

    docker create 
    -e MYSQL_ROOT_PASSWORD=123456 
    -v /home/soft/mysql/config/my.cnf:/etc/mysql/my.cnf 
    -v /home/soft/mysql/logs:/logs 
    -v /home/soft/mysql/data:/var/lib/mysql 
    -p 9205:3306 
    --net=mynetwork 
    --ip 172.30.0.3 
    --name mysql1 mysql:5.6.47
    启动服务
    docker start mysql1
    【遇到异常】
    iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport
    【解决】重启docker
    systemctl restart docker

    5、编排服务,安装mysql数据库测试
    创建docker-compose-mysql.yml

    version: '3'  # 使用Docker-Compose版本
    services:
        mysql: 
            image: mysql:5.6.47  # 使用mysql镜像
            restart: always
            container_name: mysql2  # mysql最后的容器名
            environment:
                MYSQL_ROOT_PASSWORD: 123456  # 设置root用户的密码
            networks:
                mynetwork:
                    ipv4_address: 172.30.0.4 # 分配ip地址
            volumes:                         # 将自己顶一个数据和配置文件映射到mysql容器对应的文件
                - '/home/soft/mysql/data:/var/lib/mysql'
                - '/home/soft/mysql/config/my.cnf:/etc/my.cnf'
                - '/home/soft/mysql/logs:/logs'
            ports:
                - '9206:3306'                # 将3306端口映射到主机的6606
    networks:                                # 定义网络地址
        mynetwork:                             # 使用自有网络
            external: true

    最终修改文件名称为:
    docker-compose.yml
    内容:

    version: '3'
    services:
      mysql: 
        image: mysql:5.6.47
        restart: always
        container_name: mysql2
        environment:
          MYSQL_ROOT_PASSWORD: 123456
        networks:
          mynetwork:
            ipv4_address: 172.30.0.4
        volumes:
          - '/home/soft/mysql2/data:/var/lib/mysql'
          - '/home/soft/mysql2/config/my.cnf:/etc/my.cnf'
          - '/home/soft/mysql2/logs:/logs'
        ports:
          - '9206:3306'
    networks:
        mynetwork:
          external: true 

    启动,一定要后台启动加上-d 否则,退出当前窗口后,服务就暂停了。
    cd /home/soft/mysql2
    docker-compose up -d

    6、查看服务运行情况。

    [root@localhost mysql2]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    fa74af70f4de        mysql:5.6.47        "docker-entrypoint.s…"   6 minutes ago       Up 6 minutes        0.0.0.0:9206->3306/tcp   mysql2
    cfd91ace203f        mysql:5.6.47        "docker-entrypoint.s…"   23 minutes ago      Up 23 minutes       0.0.0.0:9205->3306/tcp   mysql1

    通过客户端连接数据库。

    宿主机IP+对外映射端口。。

  • 相关阅读:
    MS Sq l数据类型
    northwind数据库介绍
    div使用jqueryui 源码 | gridview多个功能的源码
    gridview 经典
    文件流的方式下载文件
    sql(一)( )
    c# 和 .net (一)()
    html 和 html5(一)(表格 | 列表 | 提交按钮 | 单选 |复选 | 框架 | 脚本 | html字符实体 )
    狂神Redis笔记(上)
    狂神说 MyBatisPlus 学习笔记
  • 原文地址:https://www.cnblogs.com/a393060727/p/13163226.html
Copyright © 2011-2022 走看看