将mongodb迁移到docker-mongodb
最近个人服务器到期,在搭建新服务器的时候,基本全部docker化。所以涉及到宿主环境下的应用及数据迁移到docker container中。此文记录mongo迁移过程。
备份mongo数据
mongodump --username xxx --password xxx --db xxx --authenticationDatabase xxx -o ~/bak/mongodb/ > ~/logs/mongodb_bak_api.log |
拉取mongo镜像
配置阿里云镜像加速
dockerhub有点慢,mongo的镜像有300多M,所以过多使用阿里云提供的镜像加速服务
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://zv3w4pat.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker拉取镜像
docker pull mongo # 这样获取的是最新镜像
创建容器
端口直接映射到27017端口,通过 -v
参数映射两个目录到容器中,--atuh
启用认证模式
docker run -d -p 27017:27017 -v mongo_configdb:/data/configdb -v mongo_db:/data/db --name mongo docker.io/mongo --auth |
文件传输
将备份文件通过scp命令,拉到映射目录里去。这里有个要点,上面2个映射目录是相对路径,其真实路径是在/var/lib/docker/volumes/
下。
在原机器上执行,ip替换真实ip |
为容器里的mongodb添加认证信息
docker exec -it mongo mongo admin |
还原数据
docker exec -it mongo bash |
END
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeFer!
评论