Docker笔记:Docker中简单配置Mysql/Redis/Mongodb容器

Docker 配置 Mysql 容器

1 )方案1:基于centos等linux操作系统

  • 启动centos镜像,在里面安装 mysql
  • 这样比较麻烦,配置的东西很多 …

2 )方案2:直接用 mysql 镜像 (推荐)

  • $ docker pull mysql 下载镜像
  • $ docker run -itd --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-pass-xxx-xx mysql
  • $ docker ps 找到容器id
  • $ docker exec -it 容器id /bin/bash 这样来连接上mysql, 这里容器id
    • $ mysql -u root -p
  • 之后使用客户端来连接上容器的mysql服务
    • 使用 服务器物理机 ip和端口
    • 测试,连接成功
  • 实现mysql的数据存放到本地
    • 配置文件 存放到物理机 /root/mysql/conf.d
    • 数据文件 存放到物理机 /root/mysql/data
  • 停止之前的容器,重新配置启动:
    • $ docker run -itd --name my_mysql2 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/mysql/conf.d:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql mysql$
  • 可以测试物理机和容器内的数据同步情况,测试正常

Docker 配置 Redis 容器

  • $ docker pull redis 下载redis镜像
  • $ docker run -itd --name redis-test -p 6379:6379 redis 启动redis容器
  • $ docker ps 查看当前redis
  • $ docker exec -it 容器id /bin/bash
    • $ redis-cli 可以连接上 redis
  • ip addr 拿到到物理机的ip之后,在客户端连接redis
    • $ redis-cli -h xxx.xxx.xxx.xxx -p 6379
    • 连接成功
  • 安全问题,需要授权
    • 启动时需配置密码
  • $ docker run -itd --name redis2 6378:6379 redis --requirepass "123456"
    • 连接 $ redis-cli
    • 直接set测试 $ set u wang, 提示 NOAUTH Authentication required.
      • $ auth 123456
    • 这样就可以set了
  • 客户端能正常连接了

Docker 配置 Mongodb 容器

  • $ docker pull mongo

  • $ docker run -itd --name mymongo -p 27017:27017 -v /root/mongo/data:/data/db mongo

  • $ docker ps 获取 mymongo 容器id

  • $ docker exec -it mymongo /bin/bash

    • $ mongo 链接 mongo 数据库
    • $ show dbs 查看现有数据库
    • $ use myowndb 创建自己的数据库
    • $ db.user.insert({username:'wang'}) 这样,在 myowndb 数据库中创建了user表,并插入了一条数据
    • $ show collections 看到目前的 user 集合(表)
    • $ show dbs 可看到多了 myowndb 的数据库
    • $ db.user.find({}) 查看 user 表中所有数据
  • 在物理机上 $ ip addr 获取ip地址

  • 在客户端上 连接 $ mongo xxx.xxx.xxx.xx:27017

    • $ show dbs
    • $ show collections
    • 正常连接
  • 测试数据持久化

    • $ docker inspect 容器id | grep mongo 查看对应映射关系
    • 销毁之前容器,创建新容器
    • 测试正常,数据都在
  • mongo密码问题

    docker run -d --name authMongo \-e MONGO_INITDB_ROOT_USERNAME=admin \-e MONGO_INITDB_ROOT_PASSWORD=123456 \-p 27017:27017-v /root/mongo/data:/data/db \mongo --auth
    
  • 两个变量MONGO_INITDB_ROOT_USERNAMEMONGO_INITDB_ROOT_PASSWORD结合起来使用来传递环境变量,配置账户密码

  • 创建账户,进行授权

    db.createUser({user: 'wang',pwd: '123456',roles: [{role: 'userAdminAnyDatabase',db: 'admin'},"readWriteAnyDatabase"],
    })
    
  • 创建一个新用户并设置该用户的密码

  • 该用户是在 admin 身份验证数据库中创建的,并被赋予角色, 这是一个"超级用户"角色

  • $ docker exec -it authMongo /bin/bash

    • $ mongo$
    • $ show dbs$ 发现看不到数据了
    • $ db.auth('wang', '123456')$ 发现没法授权
  • 开始正确鉴权连接

    • $ mongo admin 连接admin数据库
    • $ db.auth('wang', '123456')
    • $ show dbs 这样就能看到了,说明鉴权成功了
  • 在客户端连接docker容器的mongo服务

    • $ mongo xxx.xxx.xxx.xxx:27017/admin$
      • admin 是数据库,可以指定任意数据库
    • $ db.auth('wang', '123456') 这里是账户和密码
    • $ show dbs 发现有数据,正常连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/214410.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

589. N 叉树的前序遍历

589. N 叉树的前序遍历 java1&#xff1a;stack栈&#xff1a;没看懂 class Solution {public List<Integer> preorder(Node root) {List<Integer> res new ArrayList<Integer>();if (root null) {return res;}Map<Node, Integer> map new HashMa…

C盘瘦身,C盘清理

以下只是我的C盘清理经验~ 一.【用软件简单清理C盘】 使用一些垃圾清理软件&#xff0c;简单的初步把C盘先清理一遍。&#xff08;这种软件太多我就不推荐了……&#xff09; 二.【WPS清理大师】 因为我电脑装了WPS&#xff0c;发现右键单击C盘有个选项【释放C盘空间】&#xf…

接口自动化框架(Pytest+request+Allure)

前言&#xff1a; 接口自动化是指模拟程序接口层面的自动化&#xff0c;由于接口不易变更&#xff0c;维护成本更小&#xff0c;所以深受各大公司的喜爱。 接口自动化包含2个部分&#xff0c;功能性的接口自动化测试和并发接口自动化测试。 本次文章着重介绍第一种&#xff0c…

Vue3.3.4中watch无法监测props的更改

背景 网上说了很多解决方案&#xff0c;都是通过watch(() > props.value, (newValue, oldValue) > {})解决&#xff0c;或者是加上{deep: true}附加属性。但是我在Vue3.3.4中&#xff0c;还是无法解决。 下面说一下我的解决方案。 解决方案 通过父组件调用子组件defineE…

点云/Mesh 常见处理库和软件汇总

注&#xff1a;参考 网址1、网址2 文章目录 软件通用点云/Mesh处理库通用几何处理库专用功能库 软件 Processing MeshLabCloudCompareTrimeshPyVistaVedo Visualization Simple-3dvizPlotOptiX (Requires CUDA-enabled GPU)PolyscopePyrender 通用点云/Mesh处理库 PCL &am…

【开发问题】vue的前端和java的后台,用sm4,实现前台加密,后台解密

sm4加密 vue引入的包代码加密解密 javamaven代码运行结果 vue 引入的包 npm install sm-crypto代码加密解密 加密&#xff1a; key &#xff1a;代表着密钥&#xff0c;必须是16 字节的十六进制密钥 password &#xff1a;加密前的密码 sm4Password &#xff1a;代表sm4加密…

Python之格式化保存数据点

功能&#xff1a;将平面点集存储为格式化txt文档&#xff0c;每个坐标值为5位整数&#xff0c;前三位为整数&#xff0c;后2位为小数 输入&#xff1a;平面点坐标&#xff0c;用列表存储&#xff0c;列表的元素为点坐标元组 输出&#xff1a;txt文件&#xff0c;每行一个点坐…

【计算机网络】应用层电子邮件协议

一、电子邮件系统架构 电子邮件是一个典型的异步通信系统&#xff0c;发送方从UA&#xff0c;也就是邮件客户端&#xff0c;通过应用层SMTP协议&#xff0c;传输层tcp协议&#xff0c;发送给发送方的邮件服务器&#xff0c;比如使用的是163邮箱&#xff0c;163提供的SMTP服务器…

python中实现yaml文件管理参数

yaml参数管理器 这是文件目录关系&#xff0c;其中config存放.yaml文件&#xff0c;scripts存放py文件 然后就可以自由使用了&#xff1a; import yaml import os#获取路径 script_directory os.path.dirname(os.path.abspath(__file__)) # 相对于脚本文件的路径 image_relat…

Swift “黑魔法”之动态获取类实例隐藏属性的值

概览 在 Swift 代码的调试中,我们时常惊叹调试器的无所不能:对于大部分“黑盒”类实例的内容,调试器也都能探查的一清二楚。 想要自己在运行时也能轻松找到 Thread 实例“私有”属性的值吗(比如 seqNum)? 在本篇博文中您将学到如下内容: 概览1. 借我,借我,一双慧眼吧…

字符统计[c]

#include<stdio.h> #include<string.h> int main() {int a,b,c;abc0;char s[100];int i0;while(1){i;scanf("%c",&s[i]);if(s[i]?)break;}for(int k1;k<i;k){if(s[k]>48&&s[k]<57){a;//数字}else if((s[k]>65&&s[k]<…

Altair Radioss碰撞 安全与冲击 衡祖仿真

Altair Radioss是解决瞬态加载工况下非线性问题的领先的结构分析求解器。其具备高扩展性、高品质、高鲁棒性&#xff0c;以及诸多功能&#xff1a;多域求解技术、高级材料功能(复合材料)等。Radioss求解器被广泛应用于汽车、航空航天、电子/家电、包装、轨道机车、生物医疗、能…

前端项目有关面试

目录 [TOC](目录) 1. MVC、MVP、MVVM2.大文件上传、多文件上传和断点续传的区别3. 前端存储4.什么是前端自适应5.浏览器原理5.1 从输入url到看到界面的过程5.2 跨域 1. MVC、MVP、MVVM MVC、MVP、MVVM 是常见的软件架构设计模式。MVVM&#xff1a;是一种软件架构设计模式&…

c语言实现链表

链表是一种常见的数据结构&#xff0c;用于存储一系列的元素。它由一系列的节点&#xff08;Node&#xff09;组成&#xff0c;每个节点包含数据和指向下一个节点的指针。不同于数组需要连续的内存空间来存储元素&#xff0c;链表使用指针将节点按照某种逻辑顺序连接起来。 每…

C 语言入门:如何编写 Hello World

C 语言简介 C 语言是由 Dennis Ritchie 于 1972 年在贝尔实验室创建的一种通用编程语言。尽管年代久远&#xff0c;它仍然是一款非常流行的语言。它之所以受欢迎的主要原因是它是计算机科学领域的基础语言之一。C 语言与 UNIX 紧密相连&#xff0c;因为它被用于编写 UNIX 操作…

Audio Signal (MATLAB) 代码学习1-常见问题

问题描述 使用MATLAB完成如下操作 加载音频文件,并存储到变量x中将x和一个频率为440Hz的正弦信号相加,用结果定义一个新的信号y绘制y信号的时域图,并正确定义时间轴利用Hann window(汉宁窗)从y中提取一个20ms的窗信号利用线性预测编码(阶数20)预测白化滤波器的参数。% …

讯飞星火认知大模型与软件测试结合,提升软件质量与效率

随着人工智能技术的不断发展&#xff0c;越来越多的企业开始将其应用于软件开发过程中。其中&#xff0c;讯飞星火认知大模型作为一种基于深度学习的自然语言处理技术&#xff0c;已经在语音识别、机器翻译、智能问答等领域取得了显著的成果。而在软件测试领域&#xff0c;讯飞…

设置bat工作目录

在执行bat脚本的时候&#xff0c;如果直接双击bat脚本&#xff0c;此时的工作路径一般为C:\Users\Administrator> 很多时候需要将工作路径设置为bat脚本所在的目录&#xff0c;可以在bat脚本内设置当前工作路径为bat文件所在目录&#xff0c; cd /d %~dp0cd:设置工作目录为…

【算法优选】 动态规划之路径问题——贰

文章目录 &#x1f38b;前言&#x1f332;[下降最小路径和](https://leetcode.cn/problems/minimum-path-sum/)&#x1f6a9;题目描述&#x1f6a9;算法思路&#xff1a;&#x1f6a9;代码实现 &#x1f38d;[最小路径和](https://leetcode.cn/problems/minimum-path-sum/)&…

viple与物理机器人(一):线控模拟

为了检测viple程序与物理机器人是否能顺利连接上 如果能顺利连接上&#xff0c;那么&#xff0c;可以通过内建事件从而控制物理机器人的前进、后退、左转、右转以及暂停。 如果不能连接上&#xff0c;首先&#xff0c;程序无法控制物理机器人&#xff0c;其次&#xff0c;当vip…