前言:由于Docker部署容器时,没有指定IP,当机器重启后,容器的IP会变化,所以在创建容器的时候,最好能固定IP;同时,在Ubuntu系统中,每次执行命令,都需要root权限,命令需要加sudo标识,可以设置为免sudo执行docker命令。

1. 创建自定义网络,可以在创建容器的时候,使用该网络固定ip

  • 输入命令:sudo docker network create --subnet=172.18.0.0/16 mynetwork

  • 三台虚拟机分别创建:

    Ubuntu-1:sudo docker network create --subnet=172.19.0.0/16 mynetwork

    Ubuntu-2:sudo docker network create --subnet=172.20.0.0/16 mynetwork

2. 免sudo使用docker命令

  • 如果还没有 docker group 就添加一个:

    $ sudo groupadd docker

  • 将用户加入该 group 内。然后退出并重新登录就生效啦

    参考命令:$ sudo gpasswd -a ${USER} docker

    $ sudo gpasswd -a xujk docker

  • 重启服务:

    sudo service docker restart

    group或者重启X会话

    newgrp - docker或者pkill X

3. 创建mysql容器+挂载(主机ip: 192.168.231.132)

  • 拉取Mysql镜像:

    docker pull mysql:5.7.24

  • 输入命令构建Mysql容器:

    sudo docker run -d --restart=always --privileged=true --name mysql01 --net mynetwork --ip 172.18.0.2 -v /home/xujk/Work/Docker/Mysql/mysql01/conf/:/etc/mysql/ -v /home/xujk/Work/Docker/Mysql/mysql01/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.24

    参数说明:

    --restart=always: 当Docker 重启时,容器会自动启动。

    --privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

    -v /opt/mysql/conf.d/my.cnf:/etc/my.cnf:映射配置文件

    -v /opt/mysql/data/:/var/lib/mysql:映射数据目录

    --net mynetwork --ip 172.18.0.2:指定使用网络名,及固定ip地址

    注意:如果要挂载配置文件的话,必须要先创建文件(my.cnf),然后映射到本地目录,如果不这样操作的话,他会把my.cnf当成一个目录来映射,就会报错:

  • 使用数据库客户端连接工具,连接Mysql数据库测试:

    由此可见,mysql数据库容器创建成功,可以提供服务
  • Docker查看容器ip
    docker inspect 容器ID | grep IPAddress
    docker inspect --format=' {{.NetworkSettings.IPAddress}}' mysql01

Docker部署Mysql实践的更多相关文章

  1. Docker 部署mysql

    目录 Docker 部署mysql 步骤 1.查找 Docker Hub 上的 MySQL 镜像 2.docker pull mysql 拉取镜像 3.运行容器 4.查看容器启动情况 使用命令备注 D ...

  2. docker(部署常见应用):docker部署mysql

    上节回顾:docker(部署常见应用):docker部署nginx docker部署mysql:5.7.26 # 下载镜像 docker pull mysql: # 查看镜像 docker image ...

  3. docker部署mysql Navicat远程连接

    docker部署mysql Navicat远程连接 docker search mysql   查看mysql镜像(是去dockerHub网站搜素镜像,遇到问题可以去该网站查看官方文档,纯英文文档估计 ...

  4. Docker:Docker部署mysql数据库

    docker部署mysql : 8.0 1.在宿主机创建mysql挂载目录 #创建目录 mkdir /home/mysql/conf mkdir /home/mysql/logs mkdir /hom ...

  5. springboot多数据源配合docker部署mysql主从实现读写分离

    本篇主要有两部分: 1.使用docker部署mysql主从 实现主从复制 2.springboot项目多数据源配置,实现读写分离 一.使用docker部署mysql主从 实现主从复制 此次使用的是wi ...

  6. docker 部署mysql tomcat时 在root@localhost~下——-——docker exec -it 容器名 /bin/bash 报错

    在docker部署mysql时 报错 找不到 容器不自动启动  , docker start 容器名  也没有效果 多次尝试发现 原因是创建容器时在 下面创建的 更改为下创建 问题解决

  7. Docker部署mysql 5.7

    Docker部署mysql 5.7 准备工作 在CentOS或者Linux创建部署目录,用于存放容器的配置和MySQL数据:目的是当重装或者升级容器时,配置文件和数据不会丢失.执行以下命令: a.创建 ...

  8. Centos7借助docker部署mysql,提供远程链接服务

    Centos7 借助docker部署mysql,并提供远程连接服务 安装docker 运行docker 注意安装docker和运行docker的步骤很简单,可以参考我学习docker的笔记 docke ...

  9. Docker部署MySql应用

    1. MySQL部署 1.1拉取MySQL镜像 docker pull mysql 查看镜像 docker images 1.2创建MySQL容器 docker run -di --name piny ...

随机推荐

  1. DRF之权限和频率限制

    一.权限 权限可以限制用户对视图的访问和对具体数据对象的访问. 在执行视图的dispatch方法前,会先进行视图访问权限的判断 在通过get_object获取对象时,会进行模型对象访问权限的判断 源码 ...

  2. 我用段子讲.NET之依赖注入其二

    <我用段子讲.NET之依赖注入其二> "随着我们将业务代码抽象化成接口和实现两部分,这也使得对象生命周期的统一管理成为可能.这就引发了第二个问题,.NET Core中的依赖注入框 ...

  3. Quartz:Quartz任务异常处理方式

    Quartz提供了二种解决方法 1 立即重新执行任务 2 立即停止所有相关这个任务的触发器 解决的方式是:在你的程序出错时,用Quartz提供的JobExecutionException类相关方法就能 ...

  4. mysql过滤表中重复数据,查询相同数据的特定一条

    待操作的表如下: p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) } span.s1 { font-variant-ligatu ...

  5. linux学习之路第八天(组管理和权限管理)

    组管理和权限管理 1.Linux 组基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者,所在组,其他组的概念 1)所有者 2)所在组 3)其它组 4)改变 ...

  6. leetcode TOP100 两数相加

    两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...

  7. excle名字后面直接跟别的出来

    名字后面直接跟别的出来 =IF($E6="","",VLOOKUP(E6,通讯录!$B$2:$D$1000,3,0)) $E6:是填写位置的地方 VLOOKUP ...

  8. Java基础00-Java概述1

    1. Java语言发展史 1.1 Java语言 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Univers ...

  9. 从代码生成说起,带你深入理解 mybatis generator 源码

    枯燥的任务 这一切都要从多年前说起. 那时候刚入职一家新公司,项目经理给我分配了一个比较简单的工作,为所有的数据库字段整理一张元数据表. 因为很多接手的项目文档都不全,所以需要统一整理一份基本的字典表 ...

  10. python -- namedtuple元组