運(yùn)行Mongo DB Docker容器?
為MongoDb轉(zhuǎn)到Docker。并且,選擇要運(yùn)行的mongo db映像。
轉(zhuǎn)到命令終端。
類型:
docker run -d --name my-mongo mongo:latest
這將公開端口:默認(rèn)情況下為27017。您可以通過安裝Robo 3T(用于管理mongo db的軟件)來連接到此mongo db實(shí)例。
運(yùn)行一個(gè)php docker容器
我將運(yùn)行php5 / Apache容器。
跑:
docker run -d -p 8020:80 --name php-apache php:5-apache
注意:這將運(yùn)行一個(gè)php容器,但是為了能夠連接到mongo db容器,您需要將此容器鏈接到mongo db容器。
docker run -d -p 8020:80 --link my-mongo --name php-mongo-test php:5-apache
現(xiàn)在,您應(yīng)該可以通過鍵入以下命令看到兩個(gè)容器正在運(yùn)行:“ docker ps”命令。
安裝Mongo Php連接器
您將需要mongo php庫才能編寫連接到mongo db的php代碼。
有兩種方法:
- 運(yùn)行php / apache映像,并手動(dòng)安裝php-mongo
- 編寫一個(gè)自定義Dockerfile,并準(zhǔn)備映像以安裝php-mongo依賴項(xiàng)。
1.運(yùn)行php / apache映像,并手動(dòng)安裝php-mongo
通過輸入以下命令來檢查php容器的容器ID:
docker ps
在該容器中打開一個(gè)shell / bash:(假設(shè)9da60559db80是我的容器ID)
docker exec -it 9da60559db80 bash
現(xiàn)在,您進(jìn)入了php容器的shell終端。您將需要安裝php-mongo依賴項(xiàng)。
運(yùn)行以下命令:
apt-get update apt-get install openssl libssl-dev libcurl4-openssl-dev pecl install mongo echo "extension=mongo.so" > /usr/local/etc/php/conf.d/mongo.ini
在上述步驟中,我們基本上安裝了mongo db連接器所需的一些依賴項(xiàng),并安裝了mongo db php擴(kuò)展名,并將其包含在php.ini列表中。
注意:Php容器加載/usr/local/etc/php/conf.d/目錄中存在的所有ini文件
現(xiàn)在,您需要重新啟動(dòng)容器以加載mongo db擴(kuò)展。
重新啟動(dòng)容器:
docker stop 9da60559db80 docker start 9da60559db80
2.準(zhǔn)備docker映像,并完成上述步驟
轉(zhuǎn)到:https : //github.com/GyanBlog/php-mongo-docker,然后構(gòu)建您的映像。您將完成上述步驟。請享用。
測試您是否正確加載了mongo db擴(kuò)展名。在/ var / www / html目錄中準(zhǔn)備一個(gè)phpfile,例如info.php,并放入以下內(nèi)容:
<?php print phpinfo();
在瀏覽器上,嘗試:localhost:8082 / info.php
您應(yīng)該看到一個(gè)大的html頁面,其中顯示php信息以及已安裝的擴(kuò)展名。搜索mongo,它應(yīng)該顯示一些結(jié)果。
運(yùn)行連接到Mongo DB的PHP代碼
<?php $connection = new MongoClient( "mongodb://my-mongo:27017" ); $collection = $connection->selectCollection('db-name', 'collection-name'); if (!$collection) { echo 'not connected to collection'; exit; } $cursor = $collection->find(); foreach ($cursor as $doc) { var_dump($doc); }