博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【docker】关于docker 中 镜像、容器的关系理解
阅读量:5786 次
发布时间:2019-06-18

本文共 1576 字,大约阅读时间需要 5 分钟。

例如,使用docker 拉取下来一个要用的镜像es

docker pull elasticsearch:5.6.9

此时es的镜像存在与服务器上

docker images

 

对于你运行镜像为一个容器的命令,你会使用

docker run -d --name es1 -p 9200:9200 -p 9300:9300 --restart=always elasticsearch:5.6.9

这是最简单的一个运行命令,只是标明了

1》你要运行的镜像是  elasticsearch:5.6.9   【镜像名称:版本号】

2》--name指定了你是用本镜像运行起来的容器名字叫 es1

3》-p 9200:9200  指定了本容器对外的端口号是多少

4》--restart=always  指定本容器随着 docker重启而重启

 

容器运行后,就是一个独立的存在,容器内部是有完整的目录的

使用命令

docker exec -it es1  /bin/bash

命令很简单  就是

docker exec -it 容器名或者ID  /bin/bash

就可以进入已经运行起的容器内部。【因为每个容器都是独立存在的,所以容器内部的好多命令都不能用,例如vi  例如ll】

 

为什么要进入docker容器内部呢?

因为你如果要使用复杂的启动容器命令,进行挂载的操作,就需要了解es自己的配置文件在容器中的位置

如下命令:

docker run -d --name es1-master -p 9200:9200 -p 9300:9300 --restart=always -v /apps/elasticSearch/es1-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /apps/elasticsearch/es1_data:/usr/share/elasticsearch/data elasticsearch:5.6.9

 

 除了最基本的命令之外,这个复杂命令进行了配置文件以及data目录的挂载

-v /apps/elasticSearch/es1-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml

本参数的说明:标识 将 -v  /apps/elasticSearch/es1-master.yml【宿主机的实际自定义配置文件】:【挂载】/usr/share/elasticsearch/config/elasticsearch.yml【docker容器 中默认配置文件】

简单来说,就是 你使用docker run运行起来的docker容器 es1-master,这个容器实际使用的配置文件是 你宿主机中自定义的配置文件/apps/elasticSearch/es1-master.yml ,使用这个自定义文件替换了容器内默认的配置文件/usr/share/elasticsearch/config/elasticsearch.yml

 同理,-v /apps/elasticsearch/es1_data:/usr/share/elasticsearch/data  的含义就是 你的docker容器es1-master 启动以后的date数据,是存放在/apps/elasticsearch/es1_data中的,而不是存在默认的容器内的/usr/share/elasticsearch/data目录下的!!!!

 

而实现挂载的好处,就是你如果想要修改本容器的参数,就不用每次进入容器内部去修改配置文件,而只需要在宿主机上修改自定义的配置文件,然后重启你的容器就可以了 

 

 

最后,退出docker容器的命令就是

exit

 

转载地址:http://vnmyx.baihongyu.com/

你可能感兴趣的文章
UNIX环境高级编程之第4章:文件和文件夹-习题
查看>>
bzoj2843极地旅行社题解
查看>>
【Linux】Linux中常用操作命令
查看>>
MyBatis3-SqlSessionDaoSupport的使用
查看>>
ReactiveSwift源码解析(三) Signal代码的基本实现
查看>>
MVC模式利用xib文件定制collectionCell
查看>>
(六)Oracle学习笔记—— 约束
查看>>
【SQL】查询数据库中某个字段有重复值出现的信息
查看>>
mysql 行转列 列转行
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
Open Graph Protocol(开放内容协议)
查看>>
模块化(1):基本思路
查看>>
Ubuntu18.04中配置QT5.11开发环境
查看>>
Exception的妙用
查看>>
基于浏览器的开源“管理+开发”工具,Pivotal MySQL*Web正式上线!
查看>>
JavaScript(五):变量的作用域
查看>>
知识图谱在互联网金融中的应用
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>