docker安装Mysql

1.上docker仓库找到想要的镜像版本

docker镜像仓库

2.安装Mysql

找到所要安装的镜像版本,复制命令

 输入命令,下载Mysql镜像

命令作用
docker pull mysql:latest拉取最新的mysql镜像
docker pull mysql:XXX拉取版本号为XXX的mysql镜像

镜像拉取成功后,输入 docker images 查看镜像是否存在 

上述步骤都执行没问题后,创建mysql容器并运行,复制如下命令:

docker run \
--name mysql \
-d \
-p 3306:3306 \
--restart unless-stopped \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.38

 各个命令解释:

命令作用
docker run创建并启动一个容器
--name mysql将容器取名为mysql
--network my-net接入my-net网络(适情况添加)
-d设置后台运行
-p 3306:3306映射端口(宿主机端口:容器端口)
--restart unless-stopped容器重启策略
-v /home/mysql/log:/var/log/mysql将日志文件夹挂载到宿主机(宿主机路径:容器路径)
-v /home/mysql/data:/var/lib/mysql将mysql储存文件夹挂载到主机(宿主机路径:容器路径)
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf将配置文件夹挂载到主机(宿主机路径:容器路径)
-e TZ=Asia/Shanghai指定时区
-e MYSQL_ROOT_PASSWORD=123456设置mysql密码
mysql:5.7.38指定以哪个镜像创建容器(镜像名或镜像ID)

为什么说  --network my-net 这个命令是非必须的呢?

执行完上述命令后,命令:docker ps 查看正在运行的容器,如果出现名为mysql的容器,就是说明安装成功了,但是有的会出现 PORTS 为空,如下图。

这时候就需要用到上述命令了,但在添加前要执行以下步骤,感兴趣的可以自行了解一下docker网络配置 

 具体步骤如下:
 1.查看docker的网络配置

docker inspect 容器名或容器id |grep IPAddress  

   使用命令查看容器的网络配置,若返回为空,如图。就是docker的网络配置有问题

  

2.查看docker的虚拟网络

docker network ls 

  docker安装是会默认创建三种不同模式的网络,其中一种是bridge模型的虚拟网络。如果没有的    话则创建。

3.创建一个bridge的虚拟网络

docker network create -d bridge my-net

以上步骤都执行成功后,删除之前创建的容器,重新创建,并加入命令--network my-net,PORTS就会有端口映射关系了。

到这为止,docker安装Mysql就成功了,可以Navicat进行连接测试。(编辑不易,给个赞再走~)

附上my.cnf配置内容

# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

#
# The MySQL  Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

[mysqld]
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
datadir        = /var/lib/mysql
#log-error    = /var/log/mysql/error.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0


max_connections = 2000
max_user_connections = 1900
max_connect_errors = 100000
max_allowed_packet = 20M
lower_case_table_names=1
[mysqld]
skip-name-resolve
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐