博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker学习之安装mysql
阅读量:4981 次
发布时间:2019-06-12

本文共 3354 字,大约阅读时间需要 11 分钟。

1.从Docker检索mysql镜像

指令:

docker search mysql

2.镜像下载

指令:

docker pull mysql:5.7.19

3.查看本地镜像列表

指令:

docker images #修改镜像名称 docker tag mysql:5.7.19 mysql:5.7

4.根据镜像创建容器

[centos@loovelj~]$ docker create -it mysql:5.762c975b37ad25b03914eb61e05088019f37ff9cb049a682ac02f20fac1761a4d 注:可不创建直接执行第5项启动mysql运行

5.设置Mysql的Docker镜像开机自动运行

指令:

docker run --restart=always --name mysql5.7 -p 3306:3306 -v /my/mysql/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

--name 容器的别称。

-p 端口映射。格式是 主机的端口:容器的端口。这里2个都是3306,所以是3306:3306
-e 设置容器的环境变量。-e MYSQL_ROOT_PASSWORD=123456就代表mysql的root的密码是123456
-d 使用镜像包名称,可以通过docker images查看
-v 将主机当前目录下的/my/mysql/datadir挂载到容器的/var/lib/mysql;

restart=always, 告诉docker,这个容器要自动启动

6.进入MySQL终端

[centos@loovelj~]$ docker psCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES2a7a85124400        mysql:5.7           "/entrypoint.sh my..."   9 seconds ago       Up 8 seconds        0.0.0.0:3306->3306/tcp   mysqlserver188099665d1e        ubuntu:latest       "/bin/bash"              23 hours ago        Up 23 hours                                  angry_spence
[centos@liujun ~]$ docker exec -it  2a7a85124400  /bin/bashroot@2a7a85124400:/# mysql -h 127.0.0.1 -u root -p Enter password: Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 2Server version: 5.7.9 MySQL Community Server (GPL)Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

7.常用Docker指令及参数

1>.Docker镜像指令

镜像检索

Docker的镜像都放置在Docker官网的Docker Hub上,地址是https://registry.hub.docker.com。可在该网站搜索镜像,也可以用命令“docker search 镜像名”(如:docker search redis)检索。

镜像下载

docker pull 镜像名

查看本地镜像列表

docker images

删除镜像

docker rmi image-id

删除所有镜像

docker rmi $(docker images -q)

2>.Docker容器指令

运行镜像为容器

docker run --name container-name -d image-name
其中--name市委容器取个名称,-d表示detached,意味着执行完这句命令后控制台将不会被阻碍,可继续输入命令操作。如:
docker run --name test-redis -d redis

查看运行中的容器列表

docker ps
通过下列命令可查看运行和停止状态的容器:
docker ps -a

停止容器

通过容器名称或容器ID停止容器
docker stop container-name/container-id
如:
docker stop test-redis

启动容器

通过容器名称或容器ID启动容器
docker start container-name/container-id
如:
docker start test-redis

设置容器开机启动

使用在Docker run的时候使用--restart参数来设置。 
no - container:不重启 
on-failure - container:退出状态非0时重启 
always:始终重启
如:
docker run --restart=always --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

端口映射

Docker容器中运行的软件所使用的端口,需要映射到当前主机的端口上才能访问。Docker的端口映射通过一个-p参数来实现。例如,我们将Redis容器的6379端口映射到本机的6378端口:
docker run -d -p 6378:6379 --name port-redis redis

删除容器

docker rm container-id

删除所有容器

docker rm $(docker ps -a -q)

查看当前容器日志

docker logs container-name/container-id
如:
docker logs port-redis

登陆容器

运行中的容器其实是一个功能完备的Linux操作系统,所以我们可以像常规的系统一样登录并访问容器。
我们可以使用如下命令,登录访问当前容器,登陆后我们可以在容器中进行常规的Linux系统操作命令,还可以使用exit命令退出登录:
docker exec -it container-id/container-name bash 

8.局域网访问不到的情况解决方法

mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option; 

Query OK, 0 rows affected, 1 warning (0.04 sec)
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec)

 

执行完毕后,再通过工具去连接,就可以连上了。

转载于:https://www.cnblogs.com/shawhe/p/9560643.html

你可能感兴趣的文章
ListView实现点击事件以及总结
查看>>
设计模式使用方法总结
查看>>
ThreadLocal的应用与实现原理
查看>>
Ubuntu用sudo apt-get update出错:E: Problem executing scripts APT::Update::Post-Invoke-Success
查看>>
异常处理与内建模块
查看>>
Linux系统下搭建FTP/SFTP服务器
查看>>
获取手机信息(UIDevice、NSBundle、NSLocale)
查看>>
函数sprintf真好用
查看>>
网络欺诈防范
查看>>
JAVA入门——Generic/泛型
查看>>
【转】iOS笔记-自定义控件(OC)
查看>>
fiddler手机安装证书报错 无法安装该证书 因为无法读取该证书文件
查看>>
css框架,一把锋利的剑
查看>>
模板—插头dp(Ural 1519 Formula 1)
查看>>
浏览器缓存
查看>>
JQ应用第3款:返回顶部、底部、微信、反馈我们共存
查看>>
【安全】requests和BeautifulSoup小试牛刀
查看>>
集群高可用之lvs
查看>>
其实你可以这样折腾java enum
查看>>
c++ bitset 操作
查看>>