docker Dockerfile 构建mongodb

安装包下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-20.10.9.tgz

1、将安装包上传到服务器,解压后重命名

#tar -zxvf mongodb-linux-x86_64-rhel70-4.4.13.tgz

# mv mongodb-linux-x86_64-rhel70-4.4.13 mongodb

 

 

 

2、编辑mongodb.conf

#cd mongodb

#创建etc目录来存放配置文件

#mkdir etc

#cd etc

 

#vi mongodb.conf

 

#数据文件存放目录

dbpath = /data/mongodb/data/db

#日志文件存放目录

logpath = /data/mongodb/logs/mongodb.log

#默认端口27017

port = 27017

#以守护程序的方式启用,即在后台运行

fork = false

#允许远程连接,127.0.0.1只允许本地连接

bind_ip=0.0.0.0

#是否需要认证,如果启用,则需要创建mongodb账号密码,使用账号密码才可以远程访问

auth = true

 

将以上信息粘贴到mongodb.conf

 

3、  编辑Dockerfile

Dockerfile 和解压后的mongodb放在同一目录中

 

 

 #vi Dockerfile

#FROM  基础镜像,一切从这里开始构建

#centos:latest 在20220520拉取的是的时候是centos8,会缺少两个文件

FROM centos:latest

# maintainer:镜像是谁写的, 姓名+邮箱

MAINTAINER XXX (XXX@qq.com)

#label:标签

LABEL Discription="基于centos的mongodb镜像" version="1.0"

# run:镜像构建的时候需要运行的命令。路径和mongodb.conf配置文件一致

RUN mkdir -p /data/mongodb/data/db

RUN mkdir -p /data/mongodb/logs

# add:步骤, 添加内容 添加目录

ADD mongodb /data/mongodb

# env:构建的时候设置环境变量

ENV PATH /data/mongodb/bin:$PATH

# expose:保留端口配置

EXPOSE 27017

# copy:类似ADD,将我们文件拷贝到镜像中。

#centos:latest 在20220520拉取的是的时候是centos8,会缺少两个文件:libcrypto.so.10、libssl.so.10。可以在本机/lib64中找到,拷贝到镜像中。

#如果拉取的centos有这2个文件可以忽略

COPY libcrypto.so.10 /lib64/
COPY libssl.so.10 /lib64/

# workdir:镜像的工作目录

WORKDIR /data/mongodb/bin/

#启动,启动不了,用CMD

#ENTRYPOINT ./mongod -f ./mongodb.conf

# cmd:指定这个容器启动的时候要运行的命令,可以有多个,但只有最后一个会生效。最好写绝对路径。

#踩坑记录,之前把mongodb.conf放在bin下 服务启动有问题,需要手动启动mongodb,单独放在etc启动才正常

CMD ["/data/mongodb/bin/mongod","-f", "/data/mongodb/etc/mongodb.conf"]

 

将以上信息粘贴到Dockerfile中

 

4、  创建镜像容器

# docker build -t centos:mongo .      (centos:mongo 自定义的镜像名称:版本号)

  

查看制作好的镜像

#docker images

 

5、  将制作好的镜像运行

# docker run -d --name my_mongo -p 27027:27017 centos:mongo 

6、进入容器

#docker exec -it my_mongo /bin/bash 

7、登录mongo

 

posted @ 2022-04-28 13:27  leihongnu  阅读(1123)  评论(0编辑  收藏  举报