En utilisant l'outil officiel mongo
depuis le docker hub, j'exécute la commande suivante pour le faire fonctionner :
docker run --name api -p 127.0.0.1:27017:27017 -p 127.0.0.1:28017:28017 -d mongo
Puis à partir d'un autre terminal Shell, j'exécute mongo
Cependant, je continue à obtenir l'erreur suivante :
MongoDB shell version: 3.2.3
connecting to: test
2016-02-18T13:52:08.110-0700 I NETWORK [thread1] Socket recv() errno:104 Connection reset by peer 127.0.0.1:27017
2016-02-18T13:52:08.110-0700 I NETWORK [thread1] SocketException: remote: (NONE):0 error: 9001 socket exception [RECV_ERROR] server [127.0.0.1:27017]
2016-02-18T13:52:08.110-0700 E QUERY [thread1] Error: network error while attempting to run command 'isMaster' on host '127.0.0.1:27017' :
connect@src/mongo/shell/mongo.js:224:14
@(connect):1:6
exception: connect failed
J'ai vérifié les journaux pour le conteneur, et tout semblait correct :
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=73334e5089e1
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] db version v3.2.3
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] git version: b326ba837cf6f49d65c2f85e1b70f6f31ece7937
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] allocator: tcmalloc
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] modules: none
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] build environment:
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] distmod: debian71
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] distarch: x86_64
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] target_arch: x86_64
2016-02-18T20:51:20.538+0000 I CONTROL [initandlisten] options: {}
2016-02-18T20:51:20.542+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=8G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2016-02-18T20:51:20.615+0000 I CONTROL [initandlisten]
2016-02-18T20:51:20.615+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-02-18T20:51:20.615+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-02-18T20:51:20.615+0000 I CONTROL [initandlisten]
2016-02-18T20:51:20.615+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-02-18T20:51:20.615+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-02-18T20:51:20.615+0000 I CONTROL [initandlisten]
2016-02-18T20:51:20.616+0000 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2016-02-18T20:51:20.616+0000 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-02-18T20:51:20.633+0000 I NETWORK [initandlisten] waiting for connections on port 27017
Quel est le problème avec Docker ou Mongo ? J'ai cherché partout une réponse, mais rien n'a fonctionné jusqu'à présent. Est-ce que Docker ou Mongo est en panne ?
Edita: J'ai fait quelques recherches supplémentaires et j'ai découvert que je ne pouvais pas accéder à Internet depuis l'intérieur du conteneur. Je m'y connecte en exécutant docker exec -ti api /bin/bash
et ensuite j'essaye d'envoyer un ping à google ou autre, et la commande se bloque.
Je n'arrive à obtenir une connexion internet du conteneur au monde extérieur qu'en utilisant --net=host
dans le docker run
commandement.