前言

docker安装mysql环境非常方便,简单的几步操作就可以了

拉取mysql镜像

先拉取mysql的镜像,可以在docker的镜像仓库找到不同TAG标签的版本https://hub.docker.com/_/mysql?tab=tags

我这里选择mysql:5.7标签

[root@yoyo ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
fc7181108d40: Already exists
787a24c80112: Already exists
a08cb039d3cd: Already exists
4f7d35eb5394: Already exists
5aa21f895d95: Already exists
a742e211b7a2: Pull complete
0163805ad937: Pull complete
62d0ebcbfc71: Pull complete
559856d01c93: Pull complete
c849d5f46e83: Pull complete
f114c210789a: Pull complete
Digest: sha256:c3594c6528b31c6222ba426d836600abd45f554d078ef661d3c882604c70ad0a
Status: Downloaded newer image for mysql:5.7

docker images查看已经下载成功

REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
centos v7.5 254d4dfe9df7 3 days ago 200MB
mysql 5.7 a1aa4f76fab9 2 weeks ago 373MB
centos/python-36-centos7 latest b8d15efaa8ec 2 months ago 651MB
centos centos7.5.1804 cf49811e3cdb 3 months ago 200MB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
training/webapp latest 6fae60ef3446 4 years ago 349MB
[root@yoyo ~]#

配置mysql

创建mysql目录,用于存放mysql相关配置及数据

  • mkdir : 如果存在上级目录不存在的情况,会无法创建下级目录, 会提出ERROR
  • mkdir -p :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
  • ~ : ”/“是根目录,”~“是家目录。Linux存储是以挂载的方式,相当于是树状的,源头就是”/“,也就是根目录。

    而每个用户都有”家“目录,也就是用户的个人目录,比如root用户的”家“目录就是/root,普通用户a的家目录就是/home/a

mkdir -p ~/yoyo/mysql/conf ~/yoyo/mysql/data ~/yoyo/mysql/logs

创建完成后,在当前用户的home目录(root用户在root目录),会有三个文件夹

[root@yoyo ~]# mkdir -p ~/yoyo/mysql/conf ~/yoyo/mysql/data ~/yoyo/mysql/logs
[root@yoyo mysql]# ll ~/yoyo/mysql
total 12
drwxr-xr-x 2 root root 4096 Jun 30 10:31 conf
drwxr-xr-x 2 root root 4096 Jun 30 10:31 data
drwxr-xr-x 2 root root 4096 Jun 30 10:31 logs

运行mysql容器

docker run -p 3309:3306 --name yoyomysql -v ~/yoyo/mysql/conf:/etc/mysql/conf.d -v ~/yoyo/mysql/logs:/logs -v ~/yoyo/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

命令说明:

  • --name 重命名yoyomysql
  • -p 3309:3306:将容器的 3306 端口映射到主机的 3309 端口。
  • -v -v /yoyo/mysql/conf:/etc/mysql/conf.d:将主机/yoyo/mysql/conf 挂载到容器的 /etc/mysql/my.cnf。
  • -v /yoyo/mysql/logs:/logs:将主机/yoyo/mysql 目录挂载到容器的 /logs。
  • -v ~/yoyo/mysql/data:/var/lib/mysql :将主机~/yoyo/mysql/data目录挂载到容器的 /var/lib/mysql 。
  • -e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
  • -d 挂后台运行

启动完成后,查看运行状态

[root@yoyo mysql]# docker run -p 3309:3306 --name yoyomysql -v ~/yoyo/mysql/conf:/etc/mysql/conf.d -v ~/yoyo/mysql/logs:/logs -v ~/yoyo/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
581137afbd3ba22dc02bf89d3ec1afb6e51d55eed0d99a3a4a979bdee8d5de4a
[root@yoyo ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
581137afbd3b mysql:5.7 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 33060/tcp, 0.0.0.0:3309->3306/tcp yoyomysql

查看~/yoyo/mysql/data目录会看到有数据

[root@yoyo ~]# ll ~/yoyo/mysql/data/
total 188476
-rw-r----- 1 polkitd ssh_keys 56 Jun 30 10:38 auto.cnf
-rw------- 1 polkitd ssh_keys 1679 Jun 30 10:38 ca-key.pem
-rw-r--r-- 1 polkitd ssh_keys 1107 Jun 30 10:38 ca.pem
-rw-r--r-- 1 polkitd ssh_keys 1107 Jun 30 10:38 client-cert.pem
-rw------- 1 polkitd ssh_keys 1675 Jun 30 10:38 client-key.pem
-rw-r----- 1 polkitd ssh_keys 1340 Jun 30 10:38 ib_buffer_pool
-rw-r----- 1 polkitd ssh_keys 79691776 Jun 30 10:38 ibdata1
-rw-r----- 1 polkitd ssh_keys 50331648 Jun 30 10:38 ib_logfile0
-rw-r----- 1 polkitd ssh_keys 50331648 Jun 30 10:38 ib_logfile1
-rw-r----- 1 polkitd ssh_keys 12582912 Jun 30 10:38 ibtmp1
drwxr-x--- 2 polkitd ssh_keys 4096 Jun 30 10:38 mysql
drwxr-x--- 2 polkitd ssh_keys 4096 Jun 30 10:38 performance_schema
-rw------- 1 polkitd ssh_keys 1679 Jun 30 10:38 private_key.pem
-rw-r--r-- 1 polkitd ssh_keys 451 Jun 30 10:38 public_key.pem
-rw-r--r-- 1 polkitd ssh_keys 1107 Jun 30 10:38 server-cert.pem
-rw------- 1 polkitd ssh_keys 1675 Jun 30 10:38 server-key.pem
drwxr-x--- 2 polkitd ssh_keys 12288 Jun 30 10:38 sys

进入容器bash

输入docker exec -it mysql bash进入容器bash,接着输入mysql -uroot -p输入root用户密码123456进入mysql

[root@yoyo data]# docker exec -i -t yoyomysql bash
root@581137afbd3b:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.26 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

进入mysql之后所有指令结尾都需要 ;

  • show databases; 查看所有的库
  • use 某个数据库, 如 use mysql;
  • select 查询语句;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec) mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> select host, user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
4 rows in set (0.00 sec) mysql> exit
Bye
root@581137afbd3b:/# exit
exit

退出mysql和容器用exit

连接mysql测试

python接口QQ群:717225969

docker学习4-docker安装mysql环境的更多相关文章

  1. Docker学习:Docker安装和基本使用

    Docker Docek是一种容器技术.容器是一种轻量级.可移植.自打包的软件技术,使应用程序可以在几乎任何地方以相同的方式运行. 使用者可以在笔记本上创建并测试好的容器,无需任何修改就能够在生产系统 ...

  2. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  3. Docker学习之Docker容器基本使用

    Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...

  4. Docker学习之Docker镜像基本使用

    Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...

  5. Docker学习实践 - Docker安装MySql数据库

    Docker安装MySQL数据库 1.Ubuntu安装MySQL安装 (1)安装编译源码需要的包 sudo apt-get install make cmake gcc g++ bison libnc ...

  6. docker学习1-CentOS 7安装docker环境

    前言 Docker 提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D ...

  7. Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7)

    前一节演示如何使用Nginx反向代理 .net Core项目容器,地址:Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(二) ...

  8. Docker从入门到安装MySQL

    Docker 的简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...

  9. Docker快速搭建PHP+Nginx+Mysql环境(https://notemi.cn/docker-quickly-set-up-php-nginx-mysql-environment.html)

    目录 1 · 目标 2 · 安装Docker 3 · 创建资源文件夹 4 · 部署Mysql · 1. 拉取镜像 · 2. 运行容器 · 3. 进入容器 · 4. 开启Mysql远程连接 5 · 部署 ...

随机推荐

  1. QT源码分析:QObject

    QT框架里面最大的特色就是在C++的基础上增加了元对象系统(Meta-Object System),而元对象系统里面最重要的内容就是信号与槽机制,这个机制是在C++语法的基础上实现的,使用了函数.函数 ...

  2. python/shell代码片段

    查看某模块路径 Bash pip show --files selenium 文件编码转换 Bash convmv -f GBK -t UTF-8 --notest -r ydcz_1/ 查找当前目录 ...

  3. shell 编写脚本批量Ping IP

    服务器总是一下子买了很多的段的ip.通过绑定后,也不知道这些ip是否绑定成功,所以就写了一个shell脚本,把ip输好,批量ping一下,看是不是都能ping通. 脚本如下: 此外.还有一个ip文件, ...

  4. repost: Deep Reinforcement Learning

    From: http://wanghaitao8118.blog.163.com/blog/static/13986977220153811210319/ accessed 2016-03-10 深度 ...

  5. LINGO与EXCEL之间的数据传递

    前言 LINGO 作为非线性规划运算的专用软件,得出结果一般都是纯文本的一列数据,要想将数据呈现到论文当中,需要整理到 EXCEL 中,使用复制粘贴容易出错还费时,所以必须要动用函数来提高效率! 案例 ...

  6. 用LabVIEW做声源定位系统

    前一阵子,研发部举办了为期三天的第一届Innovation Day,让大家用3天时间去完成工作之外的一些创意.有人做微信小程序,有人继续研究一些工作中用到的Tool,有人把一直想解决而没时间解决的老b ...

  7. Ubuntu 编译安装 nginx

    有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...

  8. 对一次 redis 未授权写入攻击的分析以及学习

    前段时间自己使用 redis 开发的时候,搞了一个 docker ,然后直接开放连接没有密码,其实一开始我就知道会被黑产扫到然后给我种马,但是把因为也是测试服务,其实也没怎么上心,于是就放任自由了,结 ...

  9. java之抽象类介绍

    什么抽象方法和抽象类 抽象方法 在类里面定义的没有方法体且用关键字“abstract”来修饰的方法就是抽象方法,所谓的没有方法体指的是在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名 ...

  10. C语言--线性表

    #include<stdio.h>#include<stdlib.h>#include<string.h>#define LIST_SIZE 100#define ...