菜鸟笔记
提升您的技术认知

docker 安装 mongodb-ag真人游戏

阅读 : 3493

描述

在这个例子里,我们会学到如何构建一个预装mongodb的docker镜像。我们还将会看到如何推送镜像到docker hub注册表来分享给其他人。

使用docker容器来部署mongodb将会给你带来许多好处,例如:

  • 易于维护、高可配置的mongodb实例
  • 准备好运行和毫秒级内开始工作
  • 基于全球访问的共享镜像

为mongodb创建一个dockerfile

让我们创建一个dockerfile并且来开始构建它:

$ nano dockerfile

虽然是可选的,但是在dockerfile开头处的注释说明很方便的说明其目的:

# dockerizing mongodb: dockerfile for building mongodb images
# based on ubuntu:latest, installs mongodb following the instructions from:
# http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

提示:dockerfiles是灵活的。然而,他们遵循一定的格式。第一项定义的是镜像的名称,这里是mongodb docker应用的父镜像。

我们将使用 docker hub中最新版本的ubuntu镜像来构建镜像。

# format: from    repository[:version]
from       ubuntu:latest

继续,我们将指定dockerfile中的maintainer

# format: maintainer name 
maintainer m.y. name 

注:尽管ubuntu系统已经有mongodb包,但是它们可能过时,因此,在这个例子中,我们将使用mongodb的官方包。

我们将开始导入mongodb公共gpg秘钥。我们还将创建一个mongodb库包管理器

# installation:
# import mongodb public gpg key and create a mongodb list file
run apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7f0ceb10
run echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/10gen.list

这个初步的准备后,我们将更新我们的包并且安装mongodb。

# update apt-get sources and install mongodb
run apt-get update
run apt-get install -y -q mongodb-org

提示:您可以安装mongodb的特定版本与版本使用所需的软件包列表,例如: run apt-get install -y -q mongodb-org=2.6.1 mongodb-org-server=2.6.1 mongodb-org-shell=2.6.1 mongodb-org-mongos=2.6.1 mongodb-org-tools=2.6.1

mongodb需要数据目录,让我们在最后一步中执行

# create the mongodb data directory
run mkdir -p /data/db

最后我们设置entrypoint来告诉docker如何在我们的mongodb镜像容器内运行mongod。并且我们将使用expose命令来指定端口:

# expose port 27017 from the container to the host
expose 27017
# set usr/bin/mongod as the dockerized entry-point application
entrypoint usr/bin/mongod

现在保存我们的文件并且构建我们的镜像。

构建mongodb的docker镜像

我们可以使用我们的dockerfile来构建我们的mongodb镜像。除非实验,使用docker build--tag参数来标记docker镜像始终是一个很好的做法。

# format: sudo docker build --tag/-t / .
# example:
$ sudo docker build --tag my/repo .

当我们发出这个命令时,docker将会通过dockerfile来构建镜像。最终镜像将被标记成my/repo

推送mongodb镜像到docker hub

docker push命令推送到docker hub上的所有镜像,可以再docker hub上托管和分享。为此,你需要登录:

# log-in
$ sudo docker login
username:
..
# push the image
# format: sudo docker push /
$ sudo docker push my/repo
the push refers to a repository [my/repo] (len: 1)
sending image list
pushing repository my/repo (1 tags)
..

使用mongodb的镜像

使用我们创建的mongodb镜像,我们可以运行一个或多个守护进程模式的mongodb。

# basic way
# usage: sudo docker run --name  -d /
$ sudo docker run --name mongo_instance_001 -d my/repo
# dockerized mongodb, lean and mean!
# usage: sudo docker run --name  -d / --noprealloc --smallfiles
$ sudo docker run --name mongo_instance_001 -d my/repo --noprealloc --smallfiles
# checking out the logs of a mongodb container
# usage: sudo docker logs 
$ sudo docker logs mongo_instance_001
# playing with mongodb
# usage: mongo --port  
$ mongo --port 12345
网站地图