Docker(三):Docker安装MySQL
查找MySQL镜像
镜像仓库
https://hub.docker.com/
下拉镜像
docker pull mysql:5.7
查看镜像
docker images
创建MySQL容器
命令式启动MySQL容器
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
参数说明
-p 3306:3306: 将容器的3306端口映射到宿主机的3306端口
--name mysql:将容器名字设置为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:初始化root用户的密码
-d mysql:5.7:后台运行容器,并返回容器ID
docker-compose启动
version: '2'
services:
mysql:
container_name: mysql
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- /mydata/mysql/log:/var/log/mysql
- /mydata/mysql/data:/var/lib/mysql
- /mydata/mysql/conf:/etc/mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
- COMPOSE_PROJECT_NAME=mysql-server
使用docker-compose方式启动可以很方便的查看容器的启动参数,命令启动方式可能会忘记启动参数。
查看容器
docker ps -a
进入容器
docker exec -it mysql /bin/bash
容器中文件
root@3873b46ee9b0:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
# 退出容器
root@3873b46ee9b0:/# exit;
就是一个linux系统。
配置MySQL
进入挂载数据卷
[root@k8s-master01 ~]# cd /mydata/mysql/
[root@k8s-master01 mysql]# ls
conf data log
[root@k8s-master01 mysql]# cd conf/
[root@k8s-master01 conf]# pwd
/mydata/mysql/conf
创建MySQL配置文件
cat > my.cnf <<-EOF
[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
EOF
注意:解决mysql连接慢问题,skip-name-resolve:跳过域名解析
重启MySQL容器
docker restart mysql
进入容器确认配置
[root@k8s-master01 conf]# docker exec -it mysql /bin/bash
root@3873b46ee9b0:/# cd /etc/mysql/
root@3873b46ee9b0:/etc/mysql# ls
my.cnf
root@3873b46ee9b0:/etc/mysql# cat my.cnf
[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
测试连接

Docker启动容器自启
docker update mysql --restart=always
Docker(三):Docker安装MySQL的更多相关文章
- Docker(三)安装Mysql
1.安装Mysql,以及常见的错误解决方法 https://blog.csdn.net/qq_19348391/article/details/82998391 2.使用SQLyog或者Navicat ...
- docker学习4-docker安装mysql环境
前言 docker安装mysql环境非常方便,简单的几步操作就可以了 拉取mysql镜像 先拉取mysql的镜像,可以在docker的镜像仓库找到不同TAG标签的版本https://hub.docke ...
- docker - 容器里安装mysql
在docker中安装mysql ubuntu官方镜像是精简的ubuntu系统,很多软件和库没有安装,所以直接安装mysql的话依赖较多,建议直接从源码编译安装mysql 通过命令行安装 先启动一个容器 ...
- Docker容器手动安装mysql(国内镜像)
Docker手动安装mysql 1.创建centos镜像的容器 [root@localhost Tools]# docker run -i -d -h zabbix --name zabbix -p ...
- Docker学习之安装mysql
1.从Docker检索mysql镜像 指令: docker search mysql 2.镜像下载 指令: docker pull mysql:5.7.19 3.查看本地镜像列表 指令: docker ...
- 部署WEB项目到服务器(三)安装mysql到linux服务器(Ubuntu)详解
突发奇想,想在自己电脑上部署一个web网站. 1,首先是下载一个适合自己已安装服务器版本的mysql数据库. 这里使用网上的链接http://dev.mysql.com/downloads/mysql ...
- Docker通过挂载安装mysql
一.安装 mkdir -p ./docker/mysql cd docker/ cd mysql/ mkdir conf mkdir data mkdir logs mkdir mysql-file ...
- Docker(三)-Docker中Image、Container与Volume的迁移
Image 镜像的迁移,适用于离线环境. 一般离线环境,都会自建Docker Registry. 无论 官方的 ,还是最近流行的 Harbor ,都是不错的选择. 但是,这个世界上就是有些环境,或者说 ...
- 使用docker安装mysql服务
使用docker官方镜像安装mysql服务 1 拉取mysql镜像,采用网易加速地址 docker pull hub.c.163.com/library/mysql:5.7 2 重命名镜像名 dock ...
- docker 静默安装mysql
debconf-set-selections命令 1.功能作用 在debconf database中插入默认值 2.位置 /usr/bin/debconf-set-selections 3.格式用法 ...
随机推荐
- webpack : 无法加载文件 C:\Users\Eileen\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本
报错内容: webpack : 无法加载文件 C:\Users\Eileen\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 http ...
- Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)复现
Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)复现 环境搭建 docker pull medicean/vulapps:s_shiro_1 docker run -d ...
- JS逆向课程笔记
扩展知识 Sources-js代码格式化
- jwt鉴权学习 (php示例代码)
前段时间听朋友讲起 jwt鉴权,博主我是一脸懵逼,通过朋友坚持不懈的讲解,我终于听懂了,jwt就是登陆token校验嘛 然而事情并不是博主想象的那么简单,在一个艳阳高照,晴空万里的夜晚,博主手贱百度了 ...
- 查看mongodb状态
netstat -ntlp|grep 27017
- 学好Flex布局并不容易
1. Flex布局介绍 CSS的传统布局解决方案,基于盒状模型,依赖display属性.position属性.float属性,对于一些特殊的布局,例如垂直居中,往往要想很多hack的方法来解决. 20 ...
- 怎样使MathType插入章节标记不显示
作为专业的公式编辑器,MathType可以帮助大家在Word中插入数学公式,有的时候还需要插入章节标记,那么怎样使章节标记不显示呢?下面就教大家使MathType插入章节标记不显示的技巧. 实际问题如 ...
- 「CERC2017」Donut Drone
题目链接 洛谷P4739 题目翻译: 你正在模拟无人机探索一个不稳定的环状行星的过程.技术上说,无人机正在穿过一个环形网格---一个在两维上都首尾环绕在一起的矩形网格.格子的行号从上到下依次编号为\( ...
- ClassLoader分类
对于类装载器而言一共有三种, 1分别是加载rt包下的Bootstrap加载器,是用C++写的,是在java最早发布的时候写的,用于加载那些最初的类. 2然后java在发展过程中又要发布新的jdk,所以 ...
- docker中启动容器提示端口被占用
docker中启动容器提示端口被占用,但是 docker ps -a 查不到信息 1.查询端口被占用的id netstat -ntpl |grep 3306 2.杀掉该id kill -9 如果kil ...