Docker installe MongoDB
Méthode 1. Créer via Dockerfile
Créer un Dockerfile
Tout d'abord, créez le répertoire mongo pour stocker les éléments associés plus tard. Le répertoire
php@php:~$ mkdir -p ~/mongo ~/mongo/db
db sera mappé au répertoire /data/db configuré par le conteneur mongo comme répertoire de stockage des données mongo
Entrez le répertoire mongo créé et créez le Dockerfile
FROM debian:wheezy # 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 \ numactl \ && rm -rf /var/lib/apt/lists/* # grab gosu for easy step-down from root ENV GOSU_VERSION 1.7 RUN set -x \ && apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \ && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \ && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).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 \ && rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc \ && chmod +x /usr/local/bin/gosu \ && gosu nobody true \ && apt-get purge -y --auto-remove ca-certificates wget # gpg: key 7F0CEB10: public key "Richard Kreuter <richard@10gen.com>" imported RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 492EAFE8CD016A07919F1D2B9ECBEC467F0CEB10 ENV MONGO_MAJOR 3.0 ENV MONGO_VERSION 3.0.12 RUN echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/$MONGO_MAJOR main" > /etc/apt/sources.list.d/mongodb-org.list RUN set -x \ && apt-get update \ && apt-get install -y \ mongodb-org=$MONGO_VERSION \ mongodb-org-server=$MONGO_VERSION \ mongodb-org-shell=$MONGO_VERSION \ mongodb-org-mongos=$MONGO_VERSION \ mongodb-org-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 /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] EXPOSE 27017 CMD ["mongod"]
via Créez une image dans le Dockerfile et remplacez-la par votre propre nom
php@php:~/mongo$ docker build -t mongo:3.2 .
Une fois la création terminée, nous pouvons retrouver l'image que nous venons de créer dans la liste d'images locale
php@php:~/mongo$ docker images mongo:3.2 REPOSITORY TAG IMAGE ID CREATED SIZE mongo 3.2 282fd552add6 9 days ago 336.1 MB
Méthode 2, docker pull mongo:3.2
Trouvez l'image mongo sur Docker Hub
php@php:~/mongo$ docker search mongo NAME DESCRIPTION STARS OFFICIAL AUTOMATED mongo MongoDB document databases ... 1989 [OK] mongo-express Web-based MongoDB admin int... 22 [OK] mvertes/alpine-mongo light MongoDB container 19 [OK] mongooseim/mongooseim-docker MongooseIM server the lates... 9 [OK] torusware/speedus-mongo Always updated official Mon... 9 [OK] jacksoncage/mongo Instant MongoDB sharded cluster 6 [OK] mongoclient/mongoclient Official docker image for M... 4 [OK] jadsonlourenco/mongo-rocks Percona Mongodb with Rocksd... 4 [OK] asteris/apache-php-mongo Apache2.4 + PHP + Mongo + m... 2 [OK] 19hz/mongo-container Mongodb replicaset for coreos 1 [OK] nitra/mongo Mongo3 centos7 1 [OK] ackee/mongo MongoDB with fixed Bluemix p... 1 [OK] kobotoolbox/mongo https://github.com/kobotoolb... 1 [OK] valtlfelipe/mongo Docker Image based on the la... 1 [OK]
Ici, nous extrayons l'image officielle, étiquetée 3.2
php@php:~/mongo$ docker pull mongo:3.2
Après le le téléchargement est terminé, nous pouvons Dans la liste des images locales, j'ai trouvé l'image avec REPOSITORY de mongo et label de 3.2.
Utiliser l'image mongo
Exécuter le conteneur
php@php:~/mongo$ docker run -p 27017:27017 -v $PWD/db:/data/db -d mongo:3.2 cda8830cad5fe35e9c4aed037bbd5434b69b19bf2075c8626911e6ebb08cad51 php@php:~/mongo$
Description de la commande :
-p 27017:27017:Modifier le conteneur Le port 27017 est mappé sur le port 27017 de l'hôte
-v $PWD/db:/data/db:Montez la base de données dans le répertoire actuel de l'hôte sur le / du conteneur data/db , comme répertoire de stockage de données mongo
Affichez l'état de démarrage du conteneur
php@php:~/mongo$ docker ps CONTAINER ID IMAGE COMMAND ... PORTS NAMES cda8830cad5f mongo:3.2 "/entrypoint.sh mongo" ... 0.0.0.0:27017->27017/tcp suspicious_goodall
Utilisez l'image mongo pour exécuter la commande mongo pour vous connecter au conteneur nouvellement démarré. L'adresse IP de l'hôte est 172.17. .0.1
php@php:~/mongo$ docker run -it mongo:3.2 mongo --host 172.17.0.1 MongoDB shell version: 3.2.7 connecting to: 172.17.0.1:27017/test Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user >