docker部署mongo

7 篇文章 0 订阅
7 篇文章 0 订阅

目录

一.docker相关操作

二.docker安装mongo步骤

三.docker镜像的保存save、加载load


一.docker相关操作

docker容器删除镜像:
1.停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
2.查看当前有些什么images
docker images
3.删除images,通过image的id来指定删除谁
docker rmi <image id>
想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要删除全部image的话
docker rmi $(docker images -q)
启动docker服务:  sudo systemctl start docker/ sudo service docker start
查看运行的docker进程:docker ps
查看所有的docker进程:docker ps -a

二.docker安装mongo步骤

docker pull mongo:3.6.9    docker下载mongo的镜像(也可以直接load已经下载的镜像docker load < mongo:3.6.9.tar )
mkdir -p /home/docker/mongo.27017/datadb    创建数据的目录
mkdir -p /home/docker/mongo.27017/dataconfigdb   创建配置的目录

docker run -d --name mongo -p 27017:27017 -v /home/docker/mongo.27017/datadb:/data/db -v /home/docker/mongo.27017/dataconfigdb:/data/dataconfigdb mongo:3.6.9
    run:启动
    -d: 后台启动
    --name:自定义名称
    -p :映射端口
    -v :挂载数据目录和配置目录
    mongo:3.6.9 :启动的镜像
docker exec -ti mongo bash  进入已经启动的mongo镜像
mongo   进入mongoshell 

use admin   创建/切换admin 数据库
db.createUser({user:"admin", pwd:"0000", roles:["root"]}); 创建admin账户
db.createUser({user:"users", pwd:"0000", roles:["userAdminAnyDatabase"]}); 创建users 账户

use bigdata  创建/切换到指定的库
db.createUser({user:"test", pwd:test123", roles:["dbOwner"]});  创建账户

show users  :查看库下面的账号以及权限
{
    "_id" : "test.gwssi",
    "user" : "gwssi",
    "db" : "test",
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "test"
        }
    ]
}
{
    "_id" : "admin.admin",
    "user" : "admin",
    "db" : "admin",
    "roles" : [
        {
            "role" : "root",
            "db" : "admin"
        }
    ]
}
{
    "_id" : "admin.users",
    "user" : "users",
    "db" : "admin",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

docker stop mongo  :暂停mongo镜像
docker rm -v mongo  :删除mongo的挂载路径
docker run -d --name mongo -p 27017:27017 -v /home/docker/mongo.27017/datadb:/data/db -v /home/docker/mongo.27017/dataconfigdb:/data/dataconfigdb mongo:3.6.9 --auth   :通过权限启动
    --auth  加权限


db.auth("test","test123") 验证权限

systemctl enable docker   重启机器自动启动docker
netstat -nltp 查看端口是否启用
往集合中插入数据:db.COLLECTION_NAME.insert(document)

三.docker镜像的保存save、加载load

(1)查看要要保存的镜像的ID
[root@localhost docker]# docker images
(2)保存镜像
[root@localhost docker]#
docker save spring-boot-docker  -o  /home/wzh/docker/spring-boot-docker.tar
(3)加载镜像
可以在任何装 docker 的地方加载 刚保存的镜像了。
docker load < spring-boot-docker.tar  
root@hd-slave1:~/docker# docker run -p 8081:8080  -d spring-boot-docker
ea5e2adc1b2e4c3bace0643a26bfdd0de4694daa2425ee2bc2a1a01ece1f6f59
root@hd-slave1:~/docker#
 

  

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Docker Compose部署MongoDB副本集的示例: ```yaml version: '3' services: mongo1: image: mongo restart: always ports: - 27017:27017 volumes: - ./data1:/data/db command: mongod --replSet "mongoRs" mongo2: image: mongo restart: always ports: - 27018:27017 volumes: - ./data2:/data/db command: mongod --replSet "mongoRs" mongo3: image: mongo restart: always ports: - 27019:27017 volumes: - ./data3:/data/db command: mongod --replSet "mongoRs" mongo-init: image: mongo restart: on-failure depends_on: - mongo1 - mongo2 - mongo3 volumes: - ./init.js:/docker-entrypoint-initdb.d/init.js ``` 在上面的示例中,我们定义了三个MongoDB容器(mongo1,mongo2和mongo3),每个容器都使用不同的端口并将其映射到主机上。每个容器都有自己的数据卷用于持久化数据。 我们还定义了一个mongo-init服务,它依赖于mongo1,mongo2和mongo3服务。该服务用于初始化副本集。 在与Docker Compose文件相同的目录中,我们还需要创建一个名为init.js的文件,用于初始化副本集。以下是一个示例init.js文件的内容: ```javascript rs.initiate({ _id: "mongoRs", members: [ { _id: 0, host: "mongo1:27017" }, { _id: 1, host: "mongo2:27017" }, { _id: 2, host: "mongo3:27017" } ] }); ``` 在上面的示例中,我们使用rs.initiate()函数初始化了一个名为"mongoRs"的副本集,并指定了三个成员(mongo1,mongo2和mongo3)。 要部署这个MongoDB副本集,只需在终端中导航到Docker Compose文件所在的目录,并运行以下命令: ```shell docker-compose up -d ``` 这将启动所有的MongoDB容器,并在后台运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值