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