打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Docker 安装MySQL并配置my.cnf | 过愙
发表于2019-11-04|更新于: 2019-11-04|分类于CentOS

  1. 先查看远端的版本
    docker search mysql

    [root@iZbp17pvndv49r9ozf5hbcZ ~]# docker search mysqlNAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATEDmysql                             MySQL is a widely used, open-source relation…   8760                [OK]                mariadb                           MariaDB is a community-developed fork of MyS…   3072                [OK]                mysql/mysql-server                Optimized MySQL Server Docker images. Create…   650                                     [OK]centos/mysql-57-centos7           MySQL 5.7 SQL database server                   64                                      centurylink/mysql                 Image containing mysql. Optimized to be link…   61                                      [OK]mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   55                                      deitch/mysql-backup               REPLACED! Please use http://hub.docker.com/r…   41                                      [OK]bitnami/mysql                     Bitnami MySQL Docker Image                      35                                      [OK]tutum/mysql                       Base docker image to run a MySQL database se…   34                                      schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic backup…   28                                      [OK]prom/mysqld-exporter                                                              23                                      [OK]linuxserver/mysql                 A Mysql container, brought to you by LinuxSe…   22                                      centos/mysql-56-centos7           MySQL 5.6 SQL database server                   16                                      circleci/mysql                    MySQL is a widely used, open-source relation…   15                                      mysql/mysql-router                MySQL Router provides transparent routing be…   13                                      arey/mysql-client                 Run a MySQL client from a docker container      12                                      [OK]imega/mysql-client                Size: 36 MB, alpine:3.5, Mysql client: 10.1.…   8                                       [OK]yloeffler/mysql-backup            This image runs mysqldump to backup data usi…   6                                       [OK]openshift/mysql-55-centos7        DEPRECATED: A Centos7 based MySQL v5.5 image…   6                                       fradelg/mysql-cron-backup         MySQL/MariaDB database backup using cron tas…   4                                       [OK]genschsa/mysql-employees          MySQL Employee Sample Database                  2                                       [OK]ansibleplaybookbundle/mysql-apb   An APB which deploys RHSCL MySQL                2                                       [OK]jelastic/mysql                    An image of the MySQL database server mainta…   1                                       widdpim/mysql-client              Dockerized MySQL Client (5.7) including Curl…   0                                       [OK]monasca/mysql-init                A minimal decoupled init container for mysql    0
    Bash
  2. 从远端下载
    docker pull mysql

    [root@iZbp17pvndv49r9ozf5hbcZ ~]# docker pull mysqlUsing default tag: latestlatest: Pulling from library/mysql80369df48736: Pull complete e8f52315cb10: Pull complete cf2189b391fc: Pull complete cc98f645c682: Pull complete 27a27ac83f74: Pull complete fa1f04453414: Pull complete d45bf7d22d33: Pull complete 3dbac26e409c: Pull complete 9017140fb8c1: Pull complete b76dda2673ae: Pull complete bea9eb46d12a: Pull complete e1f050a38d0f: Pull complete Digest: sha256:7345ce4ce6f0c1771d01fa333b8edb2c606ca59d385f69575f8e3e2ec6695eeeStatus: Downloaded newer image for mysql:latestdocker.io/library/mysql:latest
    Bash
  3. 查看镜像
    docker images

    [root@iZbp17pvndv49r9ozf5hbcZ ~]# docker imagesREPOSITORY           TAG                 IMAGE ID            CREATED             SIZEmysql                latest              c8ee894bd2bd        2 weeks ago         456MB
    Bash
  4. 然后先创建一个临时的mysql,进入容器中

    docker run --rm --name mysqlTemp -it -v /usr/local/mysql/:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 mysql /bin/bash
    Bash

– rm 退出后就删除该容器
-v /usr/local/mysql/:/var/lib/mysql 装主机目录/usr/local/mysql/映射Docker中的/var/lib/mysql目录
-it 交互模式
/bin/bash 进入 bash 命令模式
5. 查看 my.cnf文件。
cat /etc/mysql/my.cnf

root@ea063c22ea1e:/# cat /etc/mysql/my.cnf# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; version 2 of the License.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA## The MySQL  Server configuration file.## For explanations see# http://dev.mysql.com/doc/mysql/en/server-system-variables.html[mysqld]pid-file        = /var/run/mysqld/mysqld.pidsocket          = /var/run/mysqld/mysqld.sockdatadir         = /var/lib/mysqlsecure-file-priv= NULL# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Custom config should go here!includedir /etc/mysql/conf.d/
Bash

如果是完整的my.cnf文件,直接复制出去,如果不是,则需要把includedir目录一起复到主机
6. 拷贝配置文件

  • 把Docker中的/etc/mysql/my.cnf文件拷贝到Docker的/var/lib/mysql目录,及主机的/usr/local/mysql/目录中

    cp /etc/mysql/my.cnf /var/lib/mysql
    Bash
  • 把Docker中includedir目录复制出去

    cp -R /etc/mysql/conf.d/ /var/lib/mysql/conf.d
    Bash
  1. 退出bash,Docker中临时用的mysqlTemp会被删除
    然后可以查看/usr/local/mysql/目录下有mysql所有的配置文件

    [root@iZbp17pvndv49r9ozf5hbcZ ~]# ls /usr/local/mysql/conf.d  my.cnf
    Bash
  2. 这里就可以修改配置了。
    改完之后,创建正式的mysql容器

    docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123455 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf -v /usr/local/mysql/conf.d:/etc/mysql/conf.d -d mysql
    Bash

    如果my.cnf 是完整的配置,这里不需要映射conf.d和mysql.conf.d这二个目录

    docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123455 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf  -d mysql
    Bash
  • –name 容器名称

  • -p 端口映射

  • -v 配置文件映射:将 宿主机上修改的自定义配置文件,映射到 容器中

  • -e MYSQL_ROOT_PASSWORD 设置root密码

  • -d 守护进程模式运行

  • 本文作者:过客


  • 版权声明: 本博客所有文章遵循 CC 4.0 BY-SA 版权协议。转载请注明出处!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MySQL在Docker环境下运行基础
学习docker and k8s 基础(一) 安装docker
Docker容器学习梳理--应用程序容器环境部署
win10 docker部署mysql并启动远程连接
Docker例子&核心原理
Centos7安装并配置mysql5
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服