docker 安装mysql

https://www.cnblogs.com/han-1034683568/p/6941337.html?utm_source=debugrun&utm_medium=referral

https://yeasy.gitbooks.io/docker_practice/content/image/dockerfile/cmd.html


docker search mysql

docker pull mysql:5.6

docker run -p 3306:3306 --name mymysql -v /usr/local/mymysql/conf:/etc/mysql/conf.d -v /usr/local/mymysql/logs:/logs -v /usr/local/mymysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。

-v /usr/local/mymysql/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。

-v /usr/local/mymysql/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。

-v /usr/local/mymysql/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
-d: 后台运行容器,并返回容器ID


docker run -v /usr/local/mypython:/usr/src/myapp --name python3.6 -w /usr/src/myapp python:3.6 python testPython.py

-v 挂载主机上的文件卷到容器
-w 容器内的默认工作目录


#进入容器
docker exec -it mysql bash

docker build -t mysql:5.7 .
-t      ---------指定镜像名和标签

FROM mysql:5.7.20

MAINTAINER FinTester_Helix

# 指定工作目录
WORKDIR /usr/fin/mysql

#设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

#设置免密登录
ENV MYSQL_ALLOW_EMPTY_PASSWORD yes

#将所需文件放到容器中
COPY setup.sh ./
COPY schema.sql ./
COPY privileges.sql ./

#设置容器启动时执行的命令
CMD ["sh", "/setup.sh"]


setup.sh

#!/bin/bash
# set -e
#查看mysql服务的状态,方便调试,这条语句可以删除
echo `service mysql status`
echo '1.启动mysql....2320'
#启动mysql
service mysql start
sleep 5
#echo `service mysql status`
#echo '2.开始导入数据....'
#导入数据
#mysql < schema.sql
#echo '3.导入数据完毕....'
#sleep 3
#echo `service mysql status`
#重新设置mysql密码
#echo '4.开始创建用户及授权....'
#mysql < privileges.sql
#echo '5.创建用户及授权....'
#sleep 3
echo `service mysql status`
#echo `mysql容器启动完毕,且数据导入成功`
tail -f /dev/null



privileges.sql

use mysql;
select host, user from user;
-- 因为mysql版本是5.7,因此新建用户为如下命令:
create user testgroup identified by '123456';
-- 将所有数据库的权限授权给创建的testgroup用户,密码为123456:
-- grant all privileges on *.* to 'test'@'%'identified by '123456' with grant option
-- all代表接受所有操作,比如 select,insert,delete....; *.* 代表所有库下面的所有表;% 代表这个用户允许从任何地方登录;为了安全起见,这个%可以替换为你允许的ip地址;
grant all privileges on *.* to testgroup@'%' identified by '123456' with grant option;
-- 这一条命令一定要有:
flush privileges;




touch mysql.dockerfile

docker build -t mysql:5.7 -f mysql.dockerfile .
  • 命令行创建
    1. 拉取官方的镜像,标签为5.6

  • docker pull mysql:5.6

5.6: Pulling from library/mysql
fc7181108d40: Pull complete 
787a24c80112: Pull complete 
a08cb039d3cd: Pull complete 
4f7d35eb5394: Pull complete 
5aa21f895d95: Pull complete 
345649b63bc3: Pull complete 
591a87fc59ec: Pull complete 
6019ecdb5901: Pull complete 
aadc682b6a75: Pull complete 
e0969183ab5f: Pull complete 
8a01a78fff5a: Pull complete 
Digest: sha256:e4a70c0f52bfda9ed28d2127b461ff44cbc381450e7ca22e83936560d8875f14
Status: Downloaded newer image for mysql:5.6
   2. 查看镜像
  • docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.6                 3ed1080b793f        13 days ago         256MB
python              3.6                 2bb3204ab1d1        2 months ago        924MB
   3. 运行容器
  • docker run --name docker_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值