Back

docker - 一些基本的运行机制(叫用法更合适): volume, port, 使用mongodb 作为例子

发布时间: 2022-03-20 05:54:00

参考: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

Back