docker image mongodb_docker部署mongodb实践

参考官方文档

获取镜像

docker pull mongo:4.1.6 //:4.1.6 为版本标签也可使用 docker pull mongo 获取最新版本

查看获取的镜像

docker images

显示:

wt-001% docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE

redis latest 5d2989ac9711 2 weeks ago 95MB

mongo latest 7177e01e8c01 2 weeks ago 393MB

centos 7 1e1148e4cc2c 6 weeks ago 202MB

mysql latest f991c20cb508 2 months ago 486MB

wt-001%

上面一行 mongo 就是

创建数据卷进行数据持久化

在启动容器之前,我先创建一个数据卷来进行持久化,当然也可以直接-v进行指定,我这里就将数据卷交给docker进行管理:

docker volume create mysql

查看创建的volume:

docker volume ls

显示:

wt-001% docker volume ls

DRIVER VOLUME NAME

local edbab220979d558961256a279521d9f8a6a04790ae99a0b50e8c30da9247a7b5

local mongodb

local mysql

local redis

wt-001%

上面 mongo 就是

启动容器

wt-001% docker container run -p27017:27017 --restart=always --mount source=mongodb,destination=/var/lib/mongodb -v /etc/localtime:/etc/localtime --name mongodb -d mongo

注意:

如果在运行 docker container run XXXX 容器时没有设置--restart=always选项,则在重新启动系统后,这些容器将不会自动启动。

命令说明:

1.docker container run :启动一个容器并运行。以前版本直接用docker run,后来我估计是为了更细分职责,docker添加了manager command,即docker container,docker image等等。这样符合了模块化的思想,职责更明确(个人想法)。

2. -p 27017:27017 :宿主机的27017端口与容器的27017端口进行绑定。这样外部可以通过访问宿主机的27017端口进而访问到容器中的27017端口。

3. --mount source=mysql,destination=/var/lib/mongodb :数据卷进行绑定。source是指的上面我们在宿主机创建出来的volume,destination即我们要与容器中的哪个数据卷进行绑定。当然绑定数据卷还可以用-v 宿主机数据卷:容器数据卷进行绑定。

4. -v /etc/localtime:/etc/localtime :设定容器的时间与宿主机保持一致。

5. --name mongodb :设置容器的名称mysql。注意:容器名称是唯一的。

6. -d mongo :告诉容器在后台守护进程方式运行 mongo。

在容器中登录 mysql

docker container exec -it mongodb bash

命令说明:

docker container exec 进入容器

-t 让docker分配一个伪终端,并绑定到容器的标准输入上

-i 让容器的标准输入保持打开

mongodb 是容器的名字

**这时你会进入容器的终端界面

wt-001% docker container exec -it mongodb bash

root@e41b6c450e6c:/# ls

bin boot data dev docker-entrypoint-initdb.d etc home js-yaml.js lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

root@e41b6c450e6c:/#

获取运行mongo容器IP

wt-001% docker container port mongodb

27017/tcp -> 0.0.0.0:27017

则此时redis容器IP地址为:0.0.0.0

远程登陆mongodb

image.png

image.png

image.png

如上图连接成功


版权声明:本文为weixin_33370255原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。