Skip to content
.NET 开发者指北.NET 开发者指北
CMS
.NET指北
FreeKit
Docker
关于
博客
github icon
    • Docker
      • Docker 命令行
        • Docker 配置 Baget
          • Docker 配置 Jenkins
            • Docker 配置 MySql
              • 1.拉取镜像
                • 2不指定目录映射
                  • 3.建立目录映射
                    • Docker相关命令
                      • 配置远程Navicat可访问
                        • Restart参数
                      • Docker 配置 Nacos
                        • Docker 配置 Portainer
                          • Docker 配置 Redis
                            • Docker配置 Nginx
                              • Docker配置 RabbitMQ
                                • Docker部署CMS命令
                                  • ASP.NET Core+Docker+AliYun 部署

                                  Docker 配置 MySql

                                  calendar icon2022年6月29日timer icon大约 3 分钟word icon约 856 字

                                  此页内容
                                  • 1.拉取镜像
                                  • 2不指定目录映射
                                  • 3.建立目录映射
                                  • Docker相关命令
                                    • 配置远程Navicat可访问
                                    • Restart参数

                                  # Docker 配置 MySql

                                  # 1.拉取镜像

                                  docker pull mysql:5.7   # 拉取 mysql 5.7
                                  docker pull mysql       # 拉取最新版mysql镜像
                                  
                                  1
                                  2

                                  # 2不指定目录映射

                                  sudo docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
                                  
                                  1

                                  -p 端口配置 主机3306/容器3306 -name 容器名,此处为mysql -e 配置信息 MYSQL_ROOT_PASSWORD=123456 指定密码为123456 -d 指定镜像 sudo docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

                                  默认的配置文件是:/etc/mysql/my.cnf 默认的数据目录是:/var/lib/mysql

                                  我们进入mysql容器中,查看my.cnf.

                                  docker exec -it mysql bash
                                  cat /etc/mysql/my.cnf
                                  
                                  1
                                  2

                                  my.cnf 加载了 /etc/mysql/conf.d目录中所有以后缀为.cnf的配置文件,所以我们映射目录,只需要映射conf.d目录即可。

                                  先在linux上创建目录

                                  sudo mkdir -p /usr/local/docker/mysql/conf.d
                                  sudo vim mysql-docker.cnf
                                  
                                  1
                                  2

                                  保存内容

                                  [mysqld]
                                  server-id = 1 #服务Id唯一
                                  port = 3306
                                  log-error    = /var/log/mysql/error.log
                                  #只能用IP地址
                                  skip_name_resolve 
                                  #数据库默认字符集
                                  character-set-server = utf8mb4
                                  #数据库字符集对应一些排序等规则 
                                  collation-server = utf8mb4_general_ci
                                  #设置client连接mysql时的字符集,防止乱码
                                  init_connect='SET NAMES utf8mb4'
                                  #最大连接数
                                  max_connections = 300
                                  
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  #如果遇到这个错就执行下权限
                                  #mysqld: [Warning] World-writable config file '/etc/mysql/conf.d/mysql-docker.cnf' is ignored
                                  sudo chmod 644 mysql-docker.cnf
                                  
                                  1
                                  2
                                  3

                                  # 3.建立目录映射

                                  在linux上创建目录,用于存放mysql的日志和数据。

                                  sudo mkdir -p /usr/local/docker/mysql/logs
                                  sudo mkdir -p /usr/local/docker/mysql/data
                                  
                                  1
                                  2
                                  sudo docker run -p 3310:3306 --name mysql \
                                  -v /usr/local/docker/mysql/conf.d:/etc/mysql/conf.d \
                                  -v /usr/local/docker/mysql/logs:/var/log/mysql \
                                  -v /usr/local/docker/mysql/data:/var/lib/mysql \
                                  -e MYSQL_ROOT_PASSWORD=123456 \
                                  --restart=always \
                                  -d mysql
                                  
                                  
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  #查看docker 下进程,mysql是否启动
                                  docker ps 
                                  #由于 mysql /var/log/mysql 默认情况下查看
                                  docker exec mysql chown mysql:root /var/log/mysql
                                  
                                  1
                                  2
                                  3
                                  4
                                  • -p 端口配置 linux主机3310/容器3306
                                  • -name 容器名,此处为mysql
                                  • -v 指定容器及其挂载的卷,此外为 宿主机文件目录:容器文件目录,可指定多个数据文件目录
                                  • -e 配置信息 MYSQL_ROOT_PASSWORD=123456 设置 MySql服务的root密码为123456
                                  • --restart=always 容器退出时总是重启
                                  • -d 后台运行。
                                  • 镜像名

                                  # Docker相关命令

                                  其中mysql为容器的name或id

                                  #重启容器
                                  docker restart mysql
                                  #暂停容器
                                  docker stop mysql
                                  #删除容器
                                  docker rm mysql
                                  #启动容器
                                  docker start mysql
                                  #更新容器 开机也能重启
                                  docker update mysql --restart=always
                                  
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10

                                  # 配置远程Navicat可访问

                                  如果遇到无法访问时,可以使用此方式

                                  sudo docker exec -it mysql /bin/bash
                                  mysql -uroot -p123456
                                  use mysql;
                                  ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
                                  flush privileges;
                                  
                                  1
                                  2
                                  3
                                  4
                                  5

                                  # Restart参数

                                  Docker 中restart参数用于指定自动重启docker容器策略,包含3个选项:no,on-failure[:times],always,unless-stopped

                                  no 默认值,表示容器退出时,docker不自动重启容器

                                  docker run --restart=no [容器名]
                                  
                                  1

                                  on-failure 若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃**

                                  docker run --restart=on-failure:3 [容器名]
                                  
                                  1

                                  always 容器退出时总是重启**

                                  docker run --restart=always [容器名]
                                  
                                  1

                                  unless-stopped 容器退出时总是重启,但不考虑Docker守护进程启动时就已经停止的容器**

                                  docker run --restart=unless-stopped [容器名]
                                  
                                  1

                                  如果容器启动时没有设置–restart参数,则通过下面命令进行更新:* *

                                  docker update --restart=always [容器名]
                                  
                                  1
                                  edit icon在 GitHub 上编辑此页open in new window
                                  上次编辑于: 2022/6/29 19:17:23
                                  贡献者: igeekfan
                                  上一页
                                  Docker 配置 Jenkins
                                  下一页
                                  Docker 配置 Nacos
                                  MIT Licensed | Copyright © 2021-present luoyunchong
                                  苏ICP备16046457号-1

                                  该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。

                                  详情