docker - 一些基本的运行机制(叫用法更合适): volume, port, 使用mongodb 作为例子
访问量: 891
参考:https://cloudoki.com/mongodb-docker/
https://www.linode.com/docs/guides/set-up-mongodb-on-docker/
一句话记录一下吧。
docker默认是每次不保存变化的数据库。
但是对于数据库(mysql, redis, mongo)来说,则数据时刻在变化。
对于数据库,需要使用 -v 参数,来绑定 docker 内部文件夹与 (host) 外部文件夹的对应。
这个跟docker-compose的配置文件是一个作用。
下面是一个完整例子:
1. 创建本地volume:
$ sudo docker volume create mongo_volume # 它的默认位置是通过
docker volume inspect mongo_volume 可以查看的到的.
sudo docker volume inspect mysql_volume [ { "CreatedAt": "2022-04-21T04:25:30Z", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/mysql_volume/_data", "Name": "mysql_volume", "Options": {}, "Scope": "local" } ]
使用的时候,直接 叫它的名字就行,不用加上文件的路径.
(带验证) 也可以根据下面的方式:
$ sudo mkdir /data/docker/mongo_volume -p
2. 使用mongo:
$ sudo docker pull mongo
(仅允许host 的127.0.0.1:27017 绑定到container的27017上。 并且 host /data/docker/mongo_volume 文件夹映射到container的/data/db 文件夹)
$ sudo docker run -it -p 127.0.0.1:27017:27017 -v /data/docker/mongo_volume/:/data/db -d mongo