zoukankan      html  css  js  c++  java
  • 3.【原创】使用Docker安装mysql

    1.查看当前镜像列表可知当前无镜像:

    root@ubuntu-xenial:/etc/docker# docker images
    REPOSITORY(仓库)          TAG(标识)                 IMAGE ID(镜像唯一标识)            CREATED(拉取时间)             SIZE(大小)
    

      

    2.访问doucker hub查看想安装的mysql版本的TAG值(地址:https://hub.docker.com/),并执行如下指令:其中":5.7"是指定版本,此参数不指定将拉取最近版本,即":latest":

    sudo docker pull mysql:5.7
    

     

    3.查看镜像是否拉取成功:

    root@ubuntu-xenial:/etc/docker# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    mysql               5.7                 9cfcce23593a        4 weeks ago         448MB
    

      

    4.启动镜像实例,并设置初始化参数:

    root@ubuntu-xenial:/home/vagrant# docker run -p 3306:3306 --name mysql 
    > -v /mydata/mysql/log:/var/log/mysql 
    > -v /mydata/mysql/data:/var/lib/mysql 
    > -v /mydata/mysql/conf:/etc/mysql 
    > -e MYSQL_ROOT_PASSWORD=root 
    > -d mysql:5.7
    ba385514ac909d67e6d388c9d7fa441c19ed237edf7c3323b6a50ac59a53be5e
    

      

      4.1.参数解释:

    序号 指令 解释
    1

    docker run -p 3306:3306 --name mysql

    【docker run】:运行一个镜像实例容器的指令

    【-p 3306:3306】:将宿主机的端口映射到实例容器的端口

    【--name mysql】:给新运行的镜像实例指定名称

    【 】:指令换行符,后面将不再解释

    2 -v /mydata/mysql/log:/var/log/mysql

    将镜像实例的【日志】映射到宿主机的指定目录

    宿主机:/mydata/mysql/log

    实   例:/var/log/mysql

    3 -v /mydata/mysql/data:/var/lib/mysql

    将镜像实例的【数据】映射到宿主机的指定目录

    宿主机:/mydata/mysql/data

    实   例:/var/lib/mysql

    4 -v /mydata/mysql/conf:/etc/mysql

    将镜像实例的【配置】映射到宿主机的指定目录

    宿主机:/mydata/mysql/conf

    实   例:/etc/mysql

    5 -e MYSQL_ROOT_PASSWORD=root

    指定镜像实例的mysql的root用户的密码
    6 -d mysql:5.7 后台运行镜像实例
    7
    ba385514ac909d67e6d388c9d7fa441c19ed237edf7c3323b6a50ac59a53be5e
    实例运行后返回的镜像实例的唯一主键

      4.2.【思考】可使用"docker exec -it mysql /bin/base"(其中"mysql"是实例名称)进入实例内部进入到指定文件夹(上述表格中的镜像内的文件路径)中进行查看或配置。但是往往这样做比较麻烦,所有才使用数据映射的方式进行操作。

    5.查看当前正在运行中的容器:

    root@ubuntu-xenial:/home/vagrant# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
    ba385514ac90        mysql:5.7           "docker-entrypoint.s…"   30 minutes ago      Up 30 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
    

      

    6.修改mysql的配置:此处以修改mysql字符编码为例:

    sudo vi /mydata/mysql/conf/my.conf
    

      

      6.1.配置的内容:

    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    init_connect='SET collation_connection=utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    

      

    7.重启mysql镜像实例(指令中的"mysql"为实例名称,也可以用实例列表中CONTAINER ID中的值):

    sudo docker restart mysql
    

      

    8.使用容器id(“0bd04790d4ee”为CONTAINER ID)设置mysql随docker启动:

    sudo docker update 0bd04790d4ee --restart=always
    

      

  • 相关阅读:
    saltstack
    python一个命令开启http服务器
    常用服务安装部署
    位置1
    linux中python3安装和使用
    Linux基础系统优化
    Shell基本命令
    linux系统目录结构
    远程连接linux服务器
    VMware和Centos安装使用
  • 原文地址:https://www.cnblogs.com/Nick-Hu/p/13290853.html
Copyright © 2011-2022 走看看