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
|