Docker 安装 MongoDB

Docker 安装 MongoDB


方法一、docker pull mongo

查找 Docker Hub 上的 mongo 镜像:

docker search mongo

这里我们拉取官方的镜像 mongo:3.2:

docker pull mongo:3.2

等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 mongo,标签为 3.2 的镜像:

docker images | grep mongo

方法二、通过 Dockerfile 构建

创建Dockerfile

首先,创建目录 mongo,用于存放后面的相关东西:

mkdir -p ./mongo  ./mongo/db

db目录将映射为 mongo 容器配置的 /data/db 目录,作为 mongo 数据的存储目录

进入创建的 mongo 目录,创建 Dockerfile

FROM debian:jessie-slim

# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
RUN groupadd -r mongodb && useradd -r -g mongodb mongodb

RUN apt-get update     && apt-get install -y --no-install-recommends         ca-certificates         jq         numactl     && rm -rf /var/lib/apt/lists/*

# grab gosu for easy step-down from root (https://github.com/tianon/gosu/releases)
ENV GOSU_VERSION 1.10
# grab "js-yaml" for parsing mongod‘s YAML config files (https://github.com/nodeca/js-yaml/releases)
ENV JSYAML_VERSION 3.10.0

RUN set -ex;         apt-get update;     apt-get install -y --no-install-recommends         wget     ;     rm -rf /var/lib/apt/lists/*;         dpkgArch="$(dpkg --print-architecture | awk -F- ‘{ print $NF }‘)";     wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch";     wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc";     export GNUPGHOME="$(mktemp -d)";     gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4;     gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu;     command -v gpgconf && gpgconf --kill all || :;     rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc;     chmod +x /usr/local/bin/gosu;     gosu nobody true;         wget -O /js-yaml.js "https://github.com/nodeca/js-yaml/raw/${JSYAML_VERSION}/dist/js-yaml.js"; # TODO some sort of download verification here
        apt-get purge -y --auto-remove wget

RUN mkdir /docker-entrypoint-initdb.d

ENV GPG_KEYS # pub   4096R/AAB2461C 2014-02-25 [expires: 2016-02-25]
#       Key fingerprint = DFFA 3DCF 326E 302C 4787  673A 01C4 E7FA AAB2 461C
# uid                  MongoDB 2.6 Release Signing Key <[email protected]>
    DFFA3DCF326E302C4787673A01C4E7FAAAB2461C # pub   4096R/EA312927 2015-10-09 [expires: 2017-10-08]
#       Key fingerprint = 42F3 E95A 2C4F 0827 9C49  60AD D68F A50F EA31 2927
# uid                  MongoDB 3.2 Release Signing Key <[email protected]>
    42F3E95A2C4F08279C4960ADD68FA50FEA312927
# https://docs.mongodb.com/manual/tutorial/verify-mongodb-packages/#download-then-import-the-key-file
RUN set -ex;     export GNUPGHOME="$(mktemp -d)";     for key in $GPG_KEYS; do         gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key";     done;     gpg --export $GPG_KEYS > /etc/apt/trusted.gpg.d/mongodb.gpg;     command -v gpgconf && gpgconf --kill all || :;     rm -r "$GNUPGHOME";     apt-key list

# Allow build-time overrides (eg. to build image with MongoDB Enterprise version)
# Options for MONGO_PACKAGE: mongodb-org OR mongodb-enterprise
# Options for MONGO_REPO: repo.mongodb.org OR repo.mongodb.com
# Example: docker build --build-arg MONGO_PACKAGE=mongodb-enterprise --build-arg MONGO_REPO=repo.mongodb.com .
ARG MONGO_PACKAGE=mongodb-org
ARG MONGO_REPO=repo.mongodb.org
ENV MONGO_PACKAGE=${MONGO_PACKAGE} MONGO_REPO=${MONGO_REPO}

ENV MONGO_MAJOR 3.2
ENV MONGO_VERSION 3.2.20

RUN echo "deb http://$MONGO_REPO/apt/debian jessie/${MONGO_PACKAGE%-unstable}/$MONGO_MAJOR main" | tee "/etc/apt/sources.list.d/${MONGO_PACKAGE%-unstable}.list"

RUN set -x     && apt-get update     && apt-get install -y         ${MONGO_PACKAGE}=$MONGO_VERSION         ${MONGO_PACKAGE}-server=$MONGO_VERSION         ${MONGO_PACKAGE}-shell=$MONGO_VERSION         ${MONGO_PACKAGE}-mongos=$MONGO_VERSION         ${MONGO_PACKAGE}-tools=$MONGO_VERSION     && rm -rf /var/lib/apt/lists/*     && rm -rf /var/lib/mongodb     && mv /etc/mongod.conf /etc/mongod.conf.orig

RUN mkdir -p /data/db /data/configdb     && chown -R mongodb:mongodb /data/db /data/configdb
VOLUME /data/db /data/configdb

COPY docker-entrypoint.sh /usr/local/bin/
RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"]

EXPOSE 27017
CMD ["mongod"]

通过Dockerfile创建一个镜像,替换成你自己的名字:

docker build -t mongo:3.2 .

使用mongo镜像

运行镜像,生成容器

使用 docker run 命令运行镜像 mongo:3.2:

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

命令说明:

-p 27017:27017 :将主机的27017 端口映射到容器的27017 端口

-v $PWD/db:/data/db :将主机中当前目录下的db挂载到容器的/data/db,作为mongo数据存储目录

查看容器的运行情况:

docker ps

使用 docker exec 命令访问容器 my-mongo:

docker exec -it my-mongo /bin/bashmongo statusmongoshow dbs;

使用 docker run 命令运行镜像 mongo:latest:

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

使用 docker exec 命令访问容器 my-mongo-latest:

docker exec -it my-mongo-latest /bin/bash
mongo status
show dbs;

目前 Docker Hub 上 mongo:latest 对应的 版本是 4.0.10

PS:

参考:https://www.runoob.com/docker/docker-install-mongodb.html

原文地址:https://www.cnblogs.com/miracle-luna/p/11108524.html

时间: 2024-08-03 04:02:19

Docker 安装 MongoDB的相关文章

docker 安装MongoDB以及设置用户

docker pull mongo (拉取镜像 默认最新版本) docker images (查看镜像) docker run -p 27017:27017 -td mongo (启动镜像) docker ps (查看启动的镜像) docker exec -it 镜像id /bin/bash (进入容器) mongo (进入mongodb) 下面是安装完之后,正确的执行步骤,创建管理账户用户和普通用户的步骤, 创建管理账户,然后退出. use admindb.createUser( { user

docker安装mongodb并备份

安装 官方镜像地址: https://hub.docker.com/_/mongo?tab=description 可以查看对应的dockerfile, 通过观察docker-entrypoint.sh可以看出,docker版的mongo移除了默认的/etc/mongo.conf, 修改了db数据存储路径为 /data/db. docker run --name mongod -p 27017:27017 -v /data/opt/mongodb/data/configdb:/data/conf

01.Docker安装MongoDB

查询MongoDB镜像 docker search mongo 拉取MongoDB镜像 docker pull mongo # 拉取指定版本镜像 docker pull mongo:3.4 启动MongoDB容器 docker run -p 27017:27017 --name mymongo -d mongo 进入MongoDB交互模式 docker exec -it <CONTAINER NAME> mongo admin 原文地址:https://www.cnblogs.com/Jcon

32.Docker安装MongoDb

从hub.docker.com上去找镜像 阿里云的国内的镜像地址 填上去之后,然后重启下docker就可以了 docker images列出本地的镜像 拉取mango的镜像 运行这个镜像 docker logs mymango:查看镜像名称为mymango的镜像的日志 docker start mymango:启动名称为mymango的镜像 错误可能是27016这个端口被占用了 netstat -aon查看本地运行的端口 查看运行端口的8025的:netstat -aon|findstr "80

Docker安装MySQL Tomcat Python Redis MongoDB Apache

Docker 安装 MySQL 方法一.docker pull mysql 查找Docker Hub上的mysql镜像 [email protected]:/mysql$ docker search mysql NAME                     DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED mysql                    MySQL is a wide

docker 部署 mongodb 并且开启远程连接

mongodb 使用 docker 部署 mongodb 拉取镜像 docker pull mongo 可以查看镜像是否下载成功 docker images | grep mongo 应该会有如下的显示 mongo latest 7177e01e8c01 2 months ago 393MB > 2 months ago 和 393MB 取决于镜像的拉取时间和对应版本的大小. 使用 docker 安装 mongodb docker run --name mongodb -v ~/docker/m

Docker运行MongoDB及Redis及ssh端口映射远程连接

Docker运行MongoDB及Redis及ssh端口映射远程连接 本节内容简介 在本实验里我们将通过完成 MongoDB 和 Redis 两个容器来学习Dockerfile及Docker的运行机制. 本节中,我们需要依次完成下面几项任务: MongoDB 的安装及配置 Redis 的安装及配置 Dockerfile 的编写 从 Dockerfile 构建镜像 本次实验的需求是完成 Dockerfile,通过 Dockerfile 创建 MongoDB 或 Redis 应用.Dockerhub上

一步一步教你搭建基于docker的MongoDB复制集群环境

一步一步教你搭建基于docker的MongoDB复制集群环境 1.安装docker 2.创建MongoDB的Image 3.搭建MongoDB的集群 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中. 1.ubuntu14.04安装docker 参考文档 http://docs.docker.com/installation/ubuntulinux/ 参考文档 http://docs.docker.com/mac/started/ pc@pc-Th

docker &amp; nodejs &amp; mongodb Nodejs 应用简单的访问Mongodb 部署至Docker

docker & nodejs & mongodb Nodejs 应用简单的访问Mongodb 部署至Docker 原文地址 https://www.cnblogs.com/zhangyanbo/p/5851644.html (自己操作时遇到不能继续的情况,所以稍做了修改完善) 目录结构 . ├── app.js ├── controller ├── Dockerfile ├── model ├── node_modules ├── package.json ├── router └──