美文网首页
docker部署mongodb实践

docker部署mongodb实践

作者: 没我找不到电子书 | 来源:发表于2019-01-17 15:31 被阅读0次

    参考官方文档

    -docker hub官网
    -mongodb官网

    docker部署redis实践看这里
    docker部署mysql实践看这里

    获取镜像

    docker pull  mongo:4.1.6   //:4.1.6    为版本标签也可使用 docker pull mongo 获取最新版本
    

    查看获取的镜像

    docker images 
    

    显示:

    wt-001% docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    redis               latest              5d2989ac9711        2 weeks ago         95MB
    mongo               latest              7177e01e8c01        2 weeks ago         393MB
    centos              7                   1e1148e4cc2c        6 weeks ago         202MB
    mysql               latest              f991c20cb508        2 months ago        486MB
    wt-001% 
    

    上面一行 mongo 就是

    创建数据卷进行数据持久化

    在启动容器之前,我先创建一个数据卷来进行持久化,当然也可以直接-v进行指定,我这里就将数据卷交给docker进行管理:

    docker volume create mysql
    

    查看创建的volume:

    docker volume ls
    

    显示:

    wt-001% docker volume ls
    DRIVER              VOLUME NAME
    local               edbab220979d558961256a279521d9f8a6a04790ae99a0b50e8c30da9247a7b5
    local               mongodb
    local               mysql
    local               redis
    wt-001% 
    

    上面 mongo 就是

    启动容器

    wt-001% docker container run -p27017:27017  --restart=always  --mount source=mongodb,destination=/var/lib/mongodb -v /etc/localtime:/etc/localtime --name mongodb -d mongo 
    

    注意:
    如果在运行 docker container run XXXX 容器时没有设置--restart=always选项,则在重新启动系统后,这些容器将不会自动启动。

    命令说明:

    1.docker container run :启动一个容器并运行。以前版本直接用docker run,后来我估计是为了更细分职责,docker添加了manager command,即docker container,docker image等等。这样符合了模块化的思想,职责更明确(个人想法)。
    2. -p 27017:27017 :宿主机的27017端口与容器的27017端口进行绑定。这样外部可以通过访问宿主机的27017端口进而访问到容器中的27017端口。
    3. --mount source=mysql,destination=/var/lib/mongodb :数据卷进行绑定。source是指的上面我们在宿主机创建出来的volume,destination即我们要与容器中的哪个数据卷进行绑定。当然绑定数据卷还可以用-v 宿主机数据卷:容器数据卷进行绑定。
    4. -v /etc/localtime:/etc/localtime :设定容器的时间与宿主机保持一致。
    5. --name mongodb :设置容器的名称mysql。注意:容器名称是唯一的。
    6. -d mongo :告诉容器在后台守护进程方式运行 mongo

    在容器中登录 mysql

    docker container exec -it mongodb  bash
    

    命令说明:

    1. docker container exec 进入容器

    2. -t 让docker分配一个伪终端,并绑定到容器的标准输入上

    3. -i 让容器的标准输入保持打开

    4. mongodb 是容器的名字

    **这时你会进入容器的终端界面

    wt-001% docker container exec -it mongodb bash
    root@e41b6c450e6c:/# ls
    bin  boot  data  dev  docker-entrypoint-initdb.d  etc  home  js-yaml.js  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    root@e41b6c450e6c:/# 
    

    获取运行mongo容器IP

    wt-001% docker container port mongodb
    27017/tcp -> 0.0.0.0:27017
    

    则此时redis容器IP地址为:0.0.0.0

    远程登陆mongodb

    image.png image.png image.png

    如上图连接成功

    相关文章

      网友评论

          本文标题:docker部署mongodb实践

          本文链接:https://www.haomeiwen.com/subject/jshidqtx.html