zoukankan      html  css  js  c++  java
  • Docker部署Mysql实践

    前言:由于Docker部署容器时,没有指定IP,当机器重启后,容器的IP会变化,所以在创建容器的时候,最好能固定IP;同时,在Ubuntu系统中,每次执行命令,都需要root权限,命令需要加sudo标识,可以设置为免sudo执行docker命令。

    1. 创建自定义网络,可以在创建容器的时候,使用该网络固定ip

    • 输入命令:sudo docker network create --subnet=172.18.0.0/16 mynetwork

    • 三台虚拟机分别创建:

      Ubuntu-1:sudo docker network create --subnet=172.19.0.0/16 mynetwork
      Ubuntu-2:sudo docker network create --subnet=172.20.0.0/16 mynetwork

    2. 免sudo使用docker命令

    • 如果还没有 docker group 就添加一个:

      $ sudo groupadd docker

    • 将用户加入该 group 内。然后退出并重新登录就生效啦

      参考命令:$ sudo gpasswd -a ${USER} docker
      $ sudo gpasswd -a xujk docker

    • 重启服务:

      sudo service docker restart
      group或者重启X会话
      newgrp - docker或者pkill X

    3. 创建mysql容器+挂载(主机ip: 192.168.231.132)

    • 拉取Mysql镜像:

      docker pull mysql:5.7.24

    • 输入命令构建Mysql容器:

      sudo docker run -d --restart=always --privileged=true --name mysql01 --net mynetwork --ip 172.18.0.2 -v /home/xujk/Work/Docker/Mysql/mysql01/conf/:/etc/mysql/ -v /home/xujk/Work/Docker/Mysql/mysql01/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.24

      参数说明:

      --restart=always: 当Docker 重启时,容器会自动启动。
      --privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
      -v /opt/mysql/conf.d/my.cnf:/etc/my.cnf:映射配置文件
      -v /opt/mysql/data/:/var/lib/mysql:映射数据目录
      --net mynetwork --ip 172.18.0.2:指定使用网络名,及固定ip地址

      注意:如果要挂载配置文件的话,必须要先创建文件(my.cnf),然后映射到本地目录,如果不这样操作的话,他会把my.cnf当成一个目录来映射,就会报错:

    • 使用数据库客户端连接工具,连接Mysql数据库测试:

      由此可见,mysql数据库容器创建成功,可以提供服务
    • Docker查看容器ip
      docker inspect 容器ID | grep IPAddress
      docker inspect --format=' {{.NetworkSettings.IPAddress}}' mysql01
  • 相关阅读:
    剑指offer(链表)
    设计模式
    谷歌Colab使用(深度学习)
    Consul与python API注册与注销
    【日志收集】之Loki
    【消息队列】之 RabbitMQ安装
    【消息队列】之NSQ安装
    Docker基础
    Python3 , Mysql5.7 , Smb 安装
    SkyWalking部署
  • 原文地址:https://www.cnblogs.com/kunwn/p/14534924.html
Copyright © 2011-2022 走看看