docker上运行mysql服务器
1.搜索MySQL镜像
$ docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 6008 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 1891 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 427 [OK]
docker.io docker.io/percona Percona Server is a fork of the MySQL rela... 335 [OK]
备注:STARS数最多,OFFICIAL是[OK]的这个就是官方的centos镜像。
2.下载MySQL镜像
$ docker pull docker.io/mysql
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/mysql latest 5195076672a7 4 weeks ago 371.4 MB
3.运行容器
$ docker run -d --name liying-mysql -e MYSQL_ROOT_PASSWORD=attack docker.io/mysql
$ docker exec -it liying-mysql /bin/bash ##进入容器
4.进入mysql

root@3d21d8918d31:/# mysql -u root -pattack
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21 MySQL Community Server (GPL) Copyright (c) 2000, 2018, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)

以上就创建了一个mysql的docker容器,可以看到版本为5.7.21。但是这样创建的容器有两个问题,一是容器删除后,数据就丢失了,二是要访问数据库,必须进入到容器里面才可以。
5.持久化数据,映射开放mysql端口
a、创建宿主机数据存放目录
$ mkdir -p /opt/data/mysql
b、启动容器
$ docker run -d -v /opt/data/mysql/:/var/lib/mysql -p 3306:3306 --name liying-mysql -e MYSQL_ROOT_PASSWORD=attack docker.io/mysql
$ docker logs liying-mysql ##查看日志
$ docker ps #查看容器
c、查看端口
$ lsof -i:3306
d、查看宿主机上的mysql数据

$ cd /opt/data/mysql
$ ll
总用量 188484
-rw-r-----. 1 systemd-bus-proxy input 56 4月 17 11:53 auto.cnf
-rw-------. 1 systemd-bus-proxy input 1679 4月 17 11:53 ca-key.pem
-rw-r--r--. 1 systemd-bus-proxy input 1107 4月 17 11:53 ca.pem
-rw-r--r--. 1 systemd-bus-proxy input 1107 4月 17 11:53 client-cert.pem
-rw-------. 1 systemd-bus-proxy input 1679 4月 17 11:53 client-key.pem
-rw-r-----. 1 systemd-bus-proxy input 1335 4月 17 11:54 ib_buffer_pool
-rw-r-----. 1 systemd-bus-proxy input 79691776 4月 17 11:54 ibdata1
-rw-r-----. 1 systemd-bus-proxy input 50331648 4月 17 11:54 ib_logfile0
-rw-r-----. 1 systemd-bus-proxy input 50331648 4月 17 11:53 ib_logfile1
-rw-r-----. 1 systemd-bus-proxy input 12582912 4月 17 11:54 ibtmp1
drwxr-x---. 2 systemd-bus-proxy input 4096 4月 17 11:53 mysql
drwxr-x---. 2 systemd-bus-proxy input 8192 4月 17 11:53 performance_schema
-rw-------. 1 systemd-bus-proxy input 1679 4月 17 11:53 private_key.pem
-rw-r--r--. 1 systemd-bus-proxy input 451 4月 17 11:53 public_key.pem
-rw-r--r--. 1 systemd-bus-proxy input 1107 4月 17 11:53 server-cert.pem
-rw-------. 1 systemd-bus-proxy input 1679 4月 17 11:53 server-key.pem
drwxr-x---. 2 systemd-bus-proxy input 8192 4月 17 11:53 sys

-p 3306:3306->把容器的mysql端口3306映射到宿主机的3306端口,这样想访问mysql就可以直接访问宿主机的3306端口。
-v /opt/data/mysql:/var/lib/mysql->把宿主机/opt/data/mysql/目录映射到容器的/var/lib/mysql目录
注意事项:
在使用-v选项映射目录时,宿主机需关闭SElinux:
$ setenforce 0
6、Navicat for MySQL客户端访问mysql
docker上运行mysql服务器的更多相关文章
- Docker上运行MySQL服务
1.搜索MySQL镜像 $ docker search mysql INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.i ...
- ELK 性能(3) — 在 Docker 上运行高性能容错的 Elasticsearch 集群
ELK 性能(3) - 在 Docker 上运行高性能容错的 Elasticsearch 集群 介绍 在 Docker 上运行高性能容错的 Elasticsearch 集群 内容 通常熟悉的开发流程是 ...
- 在Docker上构建mysql容器
1.查看docker上的镜像是否有 mysql,如果没有下载则列表中没有 [root@holly holly]# docker images; 如果没有只会看到如下结构 REPOSITORY TA ...
- 在OSX和Windows版本Docker上运行GUI程序
看到很多人在Docker问题区讨论:如何在OS X和Windows的Docker上运行GUI程序, 随手记录几个参考资料: https://github.com/docker/docker/issue ...
- .NET Core 3.0 部署在docker上运行
自从.NET Core3.0发布之后,写了几篇关于.NET Core 3.0的文章,有助于你快速入门.NET Core3.0. 本篇文章主要讲解如何一步步创建一个mvc项目,然后发布并部署在Docke ...
- linux安装docker,并在docker上运行springboot项目
docker架构示例图 仓库---> 镜像 ---> 容器 一.安装docker 1.通过 uname -r 命令查看你当前的内核版本 uname -r 2使用 root 权限登录 Ce ...
- 试试将.NET7编译为WASM并在Docker上运行
之前有听到说Docker支持Wasmtime了,刚好.NET7也支持WASM,就带大家来了解一下这个东西,顺便试试它怎么样. 因为WASM(WebAssembly) 一开始是一个给浏览器的技术,比起J ...
- 在docker中运行mysql实例
Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机.下图是容器跟虚拟机的对比 对docker有个大致了解,学习docker断断续续,虽说学习不能急于求成,但断断续续学的话,浪费的碎片化 ...
- docker 中运行 mysql
在宿主机Host的终端执行: 1. 搜索docker镜像仓库中提供的mysql docker search mysql 2.下载mysql镜像 docker pull mysql 3.改变目录权限,非 ...
随机推荐
- noip2006总结
T1 能量项链 原题 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子 ...
- matplotlib 并列条形图
1 绘制并列条形图,并在条形图上加标注 1.1 代码 from matplotlib import pyplot from matplotlib import font_manager import ...
- 环境安装——JDK安装
@ 目录 开发环境-JDK安装 1. 下载地址 2. 安装JDK 3. 配置系统环境 开发环境-JDK安装 无论在我们开始学习Java或者入职第一天安装环境,这个你都是必备滴!下面是下载和安装JDK的 ...
- Vue实现点击复制文本内容(原生JS实现)
需求: 实现点击订单编号复制内容 实现步骤: 这里我是在element 的table组件里实现的步骤,仅供参考,实际上实现思路都大同小异 首先在需要点击的地方,添加点击事件 <div class ...
- python读取json文件制作股票价格走势
- Docker 优雅终止方案
作为一名系统工程师,你可能经常需要重启容器,毕竟Kubernetes的优势就是快速弹性伸缩和故障恢复,遇到问题先重启容器再说,几秒钟即可恢复,实在不行再重启系统,这就是系统重启工程师的杀手锏.然而现实 ...
- 关于Word中复杂表格转完美的Markdown格式的技巧
背景 我们都知道有很多工具能做到Word转Markdown格式,但是在某些复杂的需求下,比如带合并单元格的表格,就会出现错乱,效果非常不理想. 那我们今天来学习和探讨下怎么实现完美转换. 转换 如果想 ...
- Gerrit+replication 同步Gitlab
配置环境:gerrit 192.168.1.100gitlab 192.168.1.1011.创建秘钥 [root@gerrit ~]# ssh-keygen -m PEM -t rsa 2.添加ho ...
- Maven安装、配置及基础
简介: Maven是Apache公司的开源项目,是项目构建工具,用来管理依赖. Maven的优点: 同样的代码实现相同的功能,Maven项目没有Jar包,项目大小更小. maven的优点如何实现: 没 ...
- ActiveMq 之JMS 看这一篇就够了
什么是JMS MQ 全称:Java MessageService 中文:Java 消息服务. JMS 是 Java 的一套 API 标准,最初的目的是为了使应用程序能够访问现有的 MOM 系 统(MO ...