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.改变目录权限,非 ...
随机推荐
- 天天写order by,你知道Mysql底层如何执行吗?
在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求,但是你真的理解order by在 Mysql 底层是如何执行的吗? 假设你要查询城市是苏州的所有人名字,并且按照姓名进行排序返回前 10 ...
- 【模拟8.11】将军令(贪心&&树形DP)
只看45分的话,是树形DP....(当然也有能拿到70分+的大佬) 40分: 只考虑k==1的情况,树形DP 所以每个节点可能被父亲,自己,儿子控制 设f[MAXN][3],0表示儿子,1表示自己,2 ...
- NOIP模拟测试19「count·dinner·chess」
反思: 我考得最炸的一次 怎么说呢?简单的两个题0分,稍难(我还不敢说难,肯定又有人喷我)42分 前10分钟看T1,不会,觉得不可做,完全不可做,把它跳了 最后10分钟看T1,发现一个有点用的性质,仍 ...
- 遇到禁止复制该怎么办?幸好我会Python...
相信大家都有遇到这种情况(无法复制): 或者是这种情况 以上这种情况都是网页无法复制文本的情况.不过这些对于Python来说都不是问题.今天辰哥就叫你们用Python去解决. 思路:利用pdfkit库 ...
- 温故而知新--day5
温故而知新--day5 ip地址 IP是英文Internet Protocol的缩写,意思是"网络之间互连的协议",也就是为计算机网络相互连接进行通信而设计的协议.当多个设备要进行 ...
- [翻译]Go与C#对比 第三篇:编译、运行时、类型系统、模块和其它的一切
Go vs C#, Part 3: Compiler, Runtime, Type System, Modules, and Everything Else | by Alex Yakunin | S ...
- Linux常用命令详解上
Linux常用命令详解上 目录 一.shell 二.Linux命令 2.1.内部命令与外部命令的区别 2.2.Linux命令行的格式 2.3.编辑Linux命令行的辅助操作 2.4.获得命令帮助的方法 ...
- hdu 2604 递推 矩阵快速幂
HDU 2604 Queuing (递推+矩阵快速幂) 这位作者讲的不错,可以看看他的 #include <cstdio> #include <iostream> #inclu ...
- 使用.net6 WebApplication打造最小API
.net6在preview4时给我们带来了一个新的API:WebApplication,通过这个API我们可以打造更小的轻量级API服务.今天我们来尝试一下如何使用WebApplication设计一个 ...
- 编译x86_64 Linux内核并基于QEMU运行
编译并运行内核镜像 安装包准备 $ sudo apt install git $ sudo apt install build-essential kernel-package fakeroot li ...