编译MongoDB镜像

1.新建一个Dockerfile文件

Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# VERSION 0.0.1
FROM ubuntu:latest
MAINTAINER lanhong Turnbull  "lanhong@changhongit.com"
# Add 10gen official apt source to the sources list
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
# Hack for initctl not being available in Ubuntu
RUN dpkg-divert -- local  --rename --add  /sbin/initctl
RUN  ln  -s  /bin/true  /sbin/initctl
# Install MongoDB
RUN apt-get update
RUN apt-get  install  mongodb-10gen
# Create the MongoDB data directory
RUN  mkdir  -p  /backup/dockerRepository/mongodb/data/db
EXPOSE 27017
ENTRYPOINT [ "usr/bin/mongod" ]

2. 编译该镜像,在Dockerfile所在的目录下执行下面的命令

1
sudo  docker build -t lanhong /mongodb  .

3. 可以把mongodb 作为一个管理容器运行并且能够通过本地port连接

1
2
3
4
5
6
7
8
9
10
11
# Regular style
MONGO_ID=$( sudo  docker run -d lanhong /mongodb )
 
# Lean and mean(用这个命令)
MONGO_ID=$( sudo  docker run -d lanhong /mongodb  --noprealloc --smallfiles --dbpath  /backup/dockerRepository/mongodb/data/db )
 
# Check the logs out
sudo  docker logs $MONGO_ID
 
# Connect and play around
mongod --port <port you get from `docker  ps `>

这里mongo或者mongod命令没有,让安装apt-get install mongodb-clients。

4. 提交(保存)该容器状态

保存该容器状态到容器镜像,使该状态可以被重复使用

1
2
3
4
5
# Commit your container to a new named image
sudo  docker commit <container_id> <some_name>
e.g  sudo  docker commit afa886fad446 lanhong /mongodb
# List your containers
sudo  docker images

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值