专栏首页python爬虫实战之路告诉你最简单的方式搭建MySQL、Redis、MongoDB数据库

告诉你最简单的方式搭建MySQL、Redis、MongoDB数据库

数据库在我们日常开发中接触是很多的,平时自己没事写一些东西也经常会用到,之前专门写过安装MySQL、Redis、MongoDB的文章,各种安装配置还是比较麻烦的,为了记下安装步骤方便后期再安装。现在发现其实docker有现成的,几条命令就能搭建一个数据库出来,方便至极,简单记录一下,方便大家使用。

安装MySQL 5.7

因为8.0的改动比较大,密码验证等需要修改,所以就使用MySQL5.7

下载镜像

docker pull mysql:5.7

启动容器

docker run --name mysql -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root -v /var/lib/mysql/:/var/lib/mysql/ -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  • -p:映射本地端口3306
  • --restart:
  • --restart具体参数值详细信息:
    • no - 容器退出时,不重启容器;
    • on-failure - 只有在非0状态退出时才从新启动容器;
    • always - 无论退出状态是如何,都重启容器;
  • MYSQL_ROOT_PASSWORD:设置root密码为root
  • --character-set-server/--collation-server=utf8mb4_unicode_ci:设置默认数据库编码为utf8mb4,默认排序规则为utf8mb4_unicode_ci
  • -v:挂载本地目录 /var/lib/mysql:/var/lib/mysql:映射数据目录到宿主,防止容器重启后数据丢失 /var/mysql/conf:/etc/mysql/conf.d:MySQL配置目录,修改容器中配置(这里启动后,远程就可以访问,所以就不配置了)

PS: -v绑定的目录要新建或者清空

安装Redis

下载镜像

docker pull redis:latest

下载配置文件

将https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf配置文件下载到本地

启动容器

docker run -p 6379:6379 --restart=always -v $PWD/data:/data -v $PWD/conf/redis.conf:/etc/redis/redis.conf --privileged=true --name myredis -d redis redis-server /etc/redis/redis.conf

  • --privileged:配置权限
  • redis-server:启动redis服务命令

启动容器:番外

除了以上方式,我们还可以使用Dockerfile的方式来创建和启动容器

  • 创建Dockerfile文件
FROM redis
COPY redis.conf /etc/redis/redis.conf
CMD [ "redis-server", "/etc/redis/redis.conf" ]

要在redis.conf文件所在目录下创建

  • 生成镜像 docker build -t redis:v1.0 . 最后的.表示使用当前目录下的Dockerfile文件(redis:v1.0===镜像名:版本)

启动容器命令有些改变 docker run -p 6379:6379 --restart=always -v $PWD/data:/data --privileged=true --name myredis -d myredis

安装MongoDB

下载镜像

docker pull mongo docker pull mongo-express 可选,可视化web服务器

启动容器

docker run --name mymongo -p 27017:27017 -v $PWD/data:/data/db -d mongo

启动web访问容器

docker run --link mymongo:mongo -p 8081:8081 mongo-express

扩展

上面有两个容器配合使用,一个是MongoDB容器,一个是提供了可视化网页访问的容器,我们可以使用docker-compose将两个容器配置在yml中,这样每次启动就可以同步启动,不需要手动去分别启动了 stack.yml

version: '3.1'
services:
    mongo:
      image: mongo:latest
      ports:
        - 27017:27017
      volumes:
        - ./data:/data/db

    mongo-express:
      links:
        - mongo
      image: mongo-express
      ports:
        - 8081:8081

docker-compose -f stack.yml up

docker命令

查看绑定目录

docker inspect 容器ID

"Mounts": [
    {
        "Type": "bind",
        "Source": "/home/mysql",
        "Destination": "/var/lib/mysql",
        "Mode": "",
        "RW": true,
        "Propagation": "rprivate"
      }
 ],

Source:本地目录 Destination:容器内目录(一般默认都是这个目录,无需修改)

查看容器IP

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器ID

查看容器绑定端口

docker port 容器ID

本文分享自微信公众号 - python爬虫实战之路(gh_f26a568fdea8),作者:星星o在线

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • docker配置redis集群和scrapyd服务

    Redis集群的配置方式我们上一篇已经介绍过了,而且使用Dockerfile配置文件我们也介绍了,不过介绍的并不详细,可能有些人看不明白,这篇我们再介绍一些Do...

    星星在线
  • Linux/Mac安装Redis数据库

    如果要安装最新的redis,需要安装Remi的软件源,官网地址:http://rpms.famillecollet.com/

    星星在线
  • docker容器操作命令

    CMD:https://docs.docker.com/engine/reference/builder/#cmd

    星星在线
  • docker配置redis集群和scrapyd服务

    Redis集群的配置方式我们上一篇已经介绍过了,而且使用Dockerfile配置文件我们也介绍了,不过介绍的并不详细,可能有些人看不明白,这篇我们再介绍一些Do...

    星星在线
  • Docker的典型应用场景

    相对于VM,docker在其轻量、配置复杂度以及资源利用率方面有着明显的优势。 随着docker技术的不断成熟,越来越多的企业开始考虑通过docker来改进自己...

    小小科
  • Docker中运行的Java 9将能调整内存限制

    OpenJDK 9中首次新增了一项实验性功能,JVM可借助该功能检测到自己运行在容器中,进而酌情调整内存限制。尽管过去几年来容器技术日渐流行,但包括JVM在内的...

    静一
  • 你可能不知道的Docker资源限制

      默认情况下,容器是没有资源限制的,它会尽可能地使用宿主机能够分配给它的资源。Docker提供了一种控制分配多少量的内存、CPU或阻塞I/O给一个容器的方式,...

    Edison Zhou
  • jquery 动态添加一行数据,支持动态删除

    <tr id="templateTr" style="display: none;"> <td>联系人</td> <td><input ty...

    用户5640963
  • Docker 做资源限制

    默认情况下,一个容器是没有任何资源限制的,它能够耗尽当前主机内核能够调度给容器的所有资源,就像拥有饥饿者能力的猪头帝一样,永远吃不饱。这显然是不合理的,因为资源...

    用户5760343
  • 你可能不知道的Docker资源限制

    本篇内容涉及Docker的内存与CPU限制,可以用于在实际开发中为指定容器设置限制最大使用的资源量,预计阅读时间为5分钟。

    心莱科技雪雁

扫码关注云+社区

领取腾讯云代金券