例如,使用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

【docker】关于docker 中 镜像、容器的关系理解的更多相关文章

  1. docker登录运行中的容器的4方案

    目前容器云非常的成熟,也有很多的使用案例,可以说不是什么高大上的东西了,可以说整个云计算也不是什么奢侈品,而是基础设施.但是如何使用,就成了必须的技术. 今天记录下,基于docker的容器登录技术. ...

  2. Docker给运行中的容器添加映射端口

    方法一: 1.获得容器IP将container_name 换成实际环境中的容器名docker inspect `container_name` | grep IPAddress 2. iptables ...

  3. docker学习笔记2--对镜像/容器的命令操作

    Docker启动一个Centos镜像 我们下载完成一个Centos镜像之后,开始启动 docker run -d -i -t <imageID> /bin/bash 这样就能启动一个一直停 ...

  4. Docker 给运行中的容器添加映射端口

    方法1 1.获得容器IP 将container_name 换成实际环境中的容器名 docker inspect `container_name` | grep IPAddress 2. iptable ...

  5. docker 笔记--运行中的容器如何添加端口映射

    解决: iptables -t nat -A DOCKER -p tcp --dport ${YOURPORT_1} -j DNAT --to-destination ${CONTAINERIP}:$ ...

  6. docker for windows 中 镜像 microsoft/donet 的文件结构

    一共有3个文件夹和1个文件: [Program Files] [Users] [Windows] License.txt 使用vs默认生成的dockerfile文件生成后,会新增app文件夹.

  7. Docker学习笔记之镜像与容器

    0x00 概述 镜像和容器作为 Docker 里最基础的概念,我们很有必要了解 Docker 对它们的很多定义以及其他与它们有关的知识.在这一小节里,我们就专门针对镜像与容器两个概念展开,细致的梳理与 ...

  8. 《11招玩转网络安全》之第一招:Docker For Docker

    玩转黑客那些工具,缺少了虚拟机怎么行,除了用虚拟机虚拟整个系统,Docker也不能缺少,读者只需要知道,Docker只虚拟Linux系统中的某个程序就可以了.本节就来介绍Linux下安装设置Docke ...

  9. Docker 基础 - Docker 与前端(二)

    一.Docker 系统架构 守护进程 负责容器的创建.运行和监控,还负责镜像的构建和存储.docker demon 命令可启动 Docker 守护进程. Docker 客户端 通过http与 dock ...

随机推荐

  1. Linux学习笔记:rm删除文件和文件夹

    使用rm命令删除一个文件或者目录 使用rmdir可以删除空文件夹 参数: -i:删除前逐一询问确认 -f:即使原档案属性设为唯读,亦直接删除,无需逐一确认 -r:递归 删除文件可以直接使用rm命令,若 ...

  2. linux c获取本地时间

    在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下: #ifndef _TM_DEFINED struct tm { int tm_sec; /* 秒–取值区间 ...

  3. LANMPS 一键PHP环境安装包(转)

    转:http://www.lanmps.com/ LANMPS 一键安装包,php绿色环境套件包: https://github.com/foxiswho/lanmps 安装 Mar 17, 2017 ...

  4. Spark(十五)SparkCore的源码解读

    一.启动脚本分析 独立部署模式下,主要由master和slaves组成,master可以利用zk实现高可用性,其driver,work,app等信息可以持久化到zk上:slaves由一台至多台主机构成 ...

  5. ASP.NET MVC5+ 路由特性

    概述 ASP.NET MVC 5支持一种新的路由协议,称为路由特性. MVC5也支持以前定义路由的方式,你可以在一个项目中混合使用这两种方式来定义路由. 案例 1.使用Visual Studio 20 ...

  6. MemSQL Start[c]UP 2.0 - Round 1 E - Three strings 广义后缀自动机

    E - Three strings 将三个串加进去,看每个节点在三个串中分别出现了多少次. #include<bits/stdc++.h> #define LL long long #de ...

  7. Tuning Optimization

    2017-02-22 在经过Trace的分析并重新优化之后 CPU: Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.6GHz 24core 如上图,CPU使用率平均低于60% ...

  8. redis配置新端口

    为redis分配一个8888端口,操作步骤如下:1.$REDIS_HOME/redis.conf重新复制一份,重命名为redis8888.conf.2.打开redis8888.conf配置文件,找到p ...

  9. 使用easypoi导出excel

    EasyPOI是在jeecg的poi模块基础上,继续开发独立出来的,可以说是2.0版本,EasyPoi封装的目的和jeecg一致,争取让大家write less do more ,在这个思路上easy ...

  10. Bomb HDU 3555 dp状态转移

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意: 给出一个正整数N,求出1~N中含有数字“49”的数的个数 思路: 采用数位dp的状态转移方程 ...