最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB Docker 鏡像制作與部署完整流程

 更新時間:2025年11月14日 11:46:22   作者:醉風塘  
該文章介紹了如何使用Docker部署MongoDB,包括創(chuàng)建Dockerfile、配置文件、數(shù)據(jù)庫初始化腳本,構建鏡像、創(chuàng)建和運行容器、鏡像導出與導入、擴展功能、安全建議和故障排除,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

1. Dockerfile 文件制作

創(chuàng)建無后綴的 Dockerfile 文件:

# Dockerfile文件格式
# This dockerfile uses the mongo:7.0.25 image
# VERSION 1 - EDITION 1
# Author: cxnb
# Command format: Instruction [arguments / command] ..
# 1、第一行必須指定基礎鏡像信息
FROM mongo:7.0.25
# 2、維護者信息
MAINTAINER cxnb
# 3、替換配置文件為自己的配置文件
# COPY ./mongod.conf /etc/mongod.conf
# 4、復制創(chuàng)建cxnb數(shù)據(jù)庫腳本到指定目錄
COPY ./init-db.sh /docker-entrypoint-initdb.d/
RUN chmod +x /docker-entrypoint-initdb.d/init-db.sh
# 5、指定用戶名密碼
ENV MONGO_INITDB_ROOT_USERNAME=admin
ENV MONGO_INITDB_ROOT_PASSWORD=admin123
# 6、標記容器掛載目錄
VOLUME /data/db
VOLUME /var/log/mongodb/mongod.log
# 7、標記對外公布的端口
EXPOSE 27017
# 8、設定時區(qū),如果不設定時區(qū),容器時間和主機時間會不一致。
ENV TZ=Asia/Shanghai
# 9、進入容器后自動運行的命令。
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

2. MongoDB 配置文件

創(chuàng)建 mongod.conf 文件:

# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
  dbPath: /data/db
  journal:
    enabled: true
  # engine:
  # mmapv1:
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0
# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo
security:
  authorization: enabled
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:

3. 數(shù)據(jù)庫初始化腳本

創(chuàng)建 init-db.sh 腳本:

#!/bin/bash
# 連接到 MongoDB 服務器
# 如果是4.0版本,則用mongo
# 如果先用mongo命令配置,容器啟動生成了mongodb的/data/db文件,則換成mongosh配置時,需要先刪除db文件夾中的內容。
mongosh <<EOF
use admin
db.auth('admin', 'admin123')
use cxnb
db.createUser({ 
  user: 'admin', 
  pwd: 'admin123', 
  roles: [{ 
    role: 'readWrite', 
    db: 'cxnb' 
  }] 
})
EOF

重要提示:確保腳本具有執(zhí)行權限:

chmod +x init-db.sh

4. 文件組織

將以下文件放置在宿主機的同一目錄中:

  • dockerfile (無后綴)
  • mongod.conf
  • init-db.sh

目錄結構示例:

/mongodb-docker/
├── dockerfile
├── mongod.conf
└── init-db.sh

5. 構建 Docker 鏡像

docker build -t mongodb:7.0.25 . -f dockerfile

注意:命令末尾的 . 表示使用當前目錄作為構建上下文,不能省略。

6. 創(chuàng)建并運行容器

6.1 準備宿主機目錄

# 創(chuàng)建數(shù)據(jù)目錄
mkdir -p /mnt/mongodb/data && chmod 777 /mnt/mongodb/data
# 創(chuàng)建日志目錄
mkdir -p /mnt/mongodb/logs && chmod 777 /mnt/mongodb/logs
# 創(chuàng)建配置目錄
mkdir -p /mnt/mongodb/conf && chmod 777 /mnt/mongodb/conf
# 復制配置文件
cp ./mongod.conf /mnt/mongodb/conf/mongod.conf

6.2 運行容器

docker run \
  --privileged=true \
  --name mongodb \
  -p 27017:27017 \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=admin123 \
  -v /mnt/mongodb/data:/data/db \
  -v /mnt/mongodb/logs:/var/log/mongodb \
  -v /mnt/mongodb/conf/mongod.conf:/etc/mongod.conf \
  -v /etc/localtime:/etc/localtime \
  -d \
  mongodb:7.0.25 --auth

可選參數(shù)

  • 添加 --restart=always 使容器自動重啟
  • 添加 --network custom-network 指定自定義網(wǎng)絡

6.3 驗證容器狀態(tài)

# 檢查容器運行狀態(tài)
docker ps -a | grep mongodb
# 查看容器日志
docker logs mongodb
# 進入容器
docker exec -it mongodb mongosh -u admin -p admin123

7. 鏡像導出與導入

7.1 導出鏡像

# 導出鏡像為tar文件
docker save mongodb:7.0.25 -o /opt/docker/images/mongodb_7.0.25.tar

7.2 壓縮鏡像

cd /opt/docker/images
gzip mongodb_7.0.25.tar

7.3 導入鏡像

# 方法一:直接導入壓縮文件
docker load -i /opt/docker/images/mongodb_7.0.25.tar.gz
# 方法二:先解壓再導入
gunzip mongodb_7.0.25.tar.gz
docker load -i mongodb_7.0.25.tar

8. 擴展功能

8.1 數(shù)據(jù)庫備份與恢復

# 備份數(shù)據(jù)庫
docker exec mongodb mongodump -u admin -p admin123 --authenticationDatabase admin -o /backup/
docker cp mongodb:/backup/ ./local_backup/
# 恢復數(shù)據(jù)庫
docker cp ./local_backup/ mongodb:/restore/
docker exec mongodb mongorestore -u admin -p admin123 --authenticationDatabase admin /restore/

8.2 使用 Docker Compose

創(chuàng)建 docker-compose.yml 文件:

version: '3.8'
services:
  mongodb:
    build:
      context: .
      dockerfile: dockerfile
    container_name: mongodb
    ports:
      - "27017:27017"
    environment:
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=admin123
    volumes:
      - /mnt/mongodb/data:/data/db
      - /mnt/mongodb/logs:/var/log/mongodb
      - /mnt/mongodb/conf/mongod.conf:/etc/mongod.conf
      - /etc/localtime:/etc/localtime
    restart: unless-stopped
    command: ["--auth"]

啟動服務:

docker-compose up -d

9. 安全建議

  1. 修改默認密碼:生產(chǎn)環(huán)境中務必使用強密碼替換默認密碼
  2. 網(wǎng)絡隔離:將 MongoDB 容器放置在內部網(wǎng)絡中,避免直接暴露到公網(wǎng)
  3. 定期更新:定期更新基礎鏡像以獲取安全補丁
  4. 備份策略:建立定期備份機制
  5. 訪問控制:限制只有必要的主機可以訪問 MongoDB 端口

10. 故障排除

常見問題:

  1. 權限錯誤:確保宿主機目錄具有適當權限
  2. 配置文件錯誤:檢查 YAML 格式和縮進
  3. 端口沖突:確保 27017 端口未被占用
  4. 初始化失敗:檢查 init-db.sh 腳本格式和權限

調試命令:

# 查看容器日志
docker logs mongodb
# 進入容器檢查文件
docker exec -it mongodb bash
# 檢查 MongoDB 服務狀態(tài)
docker exec mongodb mongosh --eval "db.adminCommand('serverStatus')"

通過以上步驟,您可以成功創(chuàng)建、部署和管理基于 Docker 的 MongoDB 實例。

到此這篇關于MongoDB Docker 鏡像制作與部署完整流程的文章就介紹到這了,更多相關MongoDB Docker 鏡像部署內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Jenkins+Docker持續(xù)集成的實現(xiàn)

    Jenkins+Docker持續(xù)集成的實現(xiàn)

    Jenkins是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。本文介紹了Jenkins Docker持續(xù)集成,分享給大家
    2021-05-05
  • 詳解Docker目錄掛載的方法總結

    詳解Docker目錄掛載的方法總結

    本篇文章主要介紹了Docker目錄掛載的總結,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • Docker入門安裝教程(小白篇)

    Docker入門安裝教程(小白篇)

    這篇文章主要介紹了Docker入門安裝教程(小白篇),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Docker?部署?OnlyOffice?文檔服務器的操作方法

    Docker?部署?OnlyOffice?文檔服務器的操作方法

    本文詳細介紹了如何使用Docker部署OnlyOffice文檔服務器,包括準備工作、設置變量和目錄結構、創(chuàng)建并運行OnlyOffice容器、訪問OnlyOffice文檔服務器以及配置和管理,通過這些步驟,你可以在本地快速搭建一個強大的文檔編輯平臺,感興趣的朋友一起看看吧
    2025-02-02
  • Docker?Windows下如何安裝詳細介紹(圖文)

    Docker?Windows下如何安裝詳細介紹(圖文)

    這篇文章主要介紹了Docker?Windows下如何安裝詳細介紹(圖文)的相關資料,需要的朋友可以參考下
    2016-12-12
  • Docker 安裝及配置鏡像加速的實現(xiàn)

    Docker 安裝及配置鏡像加速的實現(xiàn)

    這篇文章主要介紹了Docker 安裝及配置鏡像加速的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Docker探索namespace詳解

    Docker探索namespace詳解

    以前對docker中的namespace了解甚少,今天在網(wǎng)上查閱相關文章,發(fā)現(xiàn)這篇還不錯,介紹了namespace資源隔離以及進行namespace api操作的四種方式等內容,這里分享給大家,供參考。
    2017-10-10
  • CentOS安裝Docker的方法

    CentOS安裝Docker的方法

    這篇文章介紹了CentOS安裝Docker的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-01-01
  • docker?search?mysql報錯問題分析及解決

    docker?search?mysql報錯問題分析及解決

    Docker是現(xiàn)在非常流行的一種容器化技術,能夠方便開發(fā)者將應用程序打包進入容器,做到跨平臺的部署,這篇文章主要介紹了docker?search?mysql報錯問題分析及解決的相關資料,需要的朋友可以參考下
    2025-11-11
  • 解決registry私有倉庫空間清理問題

    解決registry私有倉庫空間清理問題

    Docker Registry因歷史鏡像堆積導致磁盤空間不足,需定期清理,通過執(zhí)行registry_garbage_collect.sh腳本及查看config.yml配置文件,可管理存儲策略,釋放占用空間
    2025-08-08

最新評論

阿坝县| 镶黄旗| 鸡泽县| 汉寿县| 新和县| 长子县| 肥城市| 焦作市| 紫金县| 威远县| 保靖县| 成武县| 闽侯县| 阳曲县| 绿春县| 乐安县| 镇赉县| 潮安县| 闽侯县| 多伦县| 理塘县| 昆山市| 府谷县| 汕尾市| 搜索| 嘉善县| 桦南县| 富裕县| 三台县| 海安县| 雷山县| 姜堰市| 张家界市| 周宁县| 浮山县| 沅江市| 沾益县| 和林格尔县| 汝城县| 贡嘎县| 托克托县|