前言:由于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. 工作3年,还不会写单元测试?新技能get!

    历史遗留代码不敢重构? 每次改代码都要回归所有逻辑? 提测被打回? 在近期的代码重构的过程中,遇到了各式各样的问题.比如调整代码顺序导致bug,取反操作逻辑丢失,参数校验逻辑被误改等. 上线前需要花大 ...

  2. 大话Java代理模式

    一.什么是代理 首先理解一下什么是代理.简单来说,代理就你要做一件事情,我替你把事情做了.这是现实生活中我们遇到的代理的需求场景.但写代码的时候对代理场景的需求,跟现实场景有点区别,本质上还是帮你做事 ...

  3. java 的 IO简单理解

    首先要先理解什么是 stream ? stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源. 一.不同导向的 stream 1)以字节为单位从 stream 中读取或往 st ...

  4. Mybatis学习(8)动态sql语句

    Mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类: 1. if 语句 (简单的条件判断) 2. ...

  5. WebContent的子目录里面的jsp文件无法将数据传递给Servlet

    在WebContent下创建子目录FormCheck,register.jsp将跳转到RegisterServlet这个Servlet中去 分两种情况:在web.xml里面配置 和 使用注解 1.在w ...

  6. MindSpore模型精度调优实战:常用的定位精度调试调优思路

    摘要:在模型的开发过程中,精度达不到预期常常让人头疼.为了帮助用户解决模型调试调优的问题,我们为MindSpore量身定做了可视化调试调优组件:MindInsight. 本文分享自华为云社区<技 ...

  7. 视图:DBA_TAB_PARTITIONS 分区表视图

    Column Datatype 释义 Description TABLE_OWNER VARCHAR2(128) 表的owner Owner of the table TABLE_NAME VARCH ...

  8. Kong的API管理方式

    目录 Kong 的管理方式 1. kong的关键术语 Service: Route: Upstream: Target: API: Consumer: Plugin: 2. 如何通过配置KONG AP ...

  9. SQL USE语句(选择数据库)

    对于大型的软件系统,会存在多个数据库,用来存储不同的数据,那么我们在开始操作之前,需要选择一个需要操作的数据库,进行后续数据的增.删.改.查工作. SQL USE语句用于选择SQL模式中的任何现有数据 ...

  10. Java基础00-Debug11

    1. Debug 1.1 Debug概述 1.2 Debug操作流程 1.2.1 如何加断点 1.2.2 如何运行加了断点的程序 1.2.3 看哪里 1.2.4 点哪里 1.2.5 如何删除断点 多个 ...