Docker的容器环境实际上是借助类Linux命名空间,将各种系统资源按照容器不同划分了不同的命名空间进行隔离,为各个进程提供独立的运行环境
关键概念:容器,镜像
两个概念一起看,镜像好比平常系统中的各个可执行文件exe,每个可执行文件都会通过一个进程运行起来,容器则好比进程。
镜像有镜像仓库,好比各大应用市场,可通过下载的形式把镜像拉到本地
知道两个概念则可以使用docker,下面介绍使用中的命令

镜像相关命令
镜像拉取
docker pull [镜像名]
eg: docker pull jim3me/etcdkeeper

镜像创建
docker build -t[镜像名称] [DockerFile文件所在路径]
创建镜像的目录需要包含DockerFile文件,里面实质包含建立镜像时需要的操作,以类似于脚本的形式描述,次文件内容暂不在本篇范围内,一般网上支持docker运行的源码都会包含这个文件,github的项目尤为显著,一般可以cd到该目录下创建
cd /home/aa/Document/otherProject/proj1
docker build -t myimage .

镜像查看
docker images

镜像删除
docker image rm [镜像名|镜像id]
-f 加上此参数使得删除关联的卷标

容器相关命令
镜像运行(创建新的容器并把镜像丢到容器中运行)
docker run [镜像名|镜像id]
run可带命令本身的参数,也可带镜像运行的时候带的参数。命令的参数:
  -I -t 交互模式
  -privileged=true 以root用户的身份去运行,默认该值为false
  -v [hostPath]:[containerPath] 路径或者文件从宿主机映射到容器中。如果hostPath的对象并不存在,则程序会在宿主中创建一个目录。这种操作应该是所谓的“持久化”,实际操作跟软连接和文件系统挂载有关系
  --volumes-form [name|Id] 与指定容器共享卷标,但是并非额能完全共享,镜像只读层的内容则不会共享,仅共享读写层的内容。
  -d 以守护模式运行,这样运行镜像时就不会同时进入镜像
  -p [hostPort]:[containerPort] 端口映射
  --name 容器名称,如不给则会随机生成一个名称
  --net= 网络类型,分4种
    host:与宿主共用网络
    none:无网络环境
    bridge:网桥模式,默认
    container: 语法--net=container:[name|id] 与指定容器公共网络,一旦以这种形式设置,则无法在本容器中开启端口映射,所有映射均要在所属容器中开启。

容器停止
docker stop [containerId|containerName]

容器移除
docker rm [containerId|containerName]

容器重启
docker restart [containerId|containerName]

容器运行
docker start [containerId|containerName]

容器日志
docker logs [Id|Name] --since="yyyy-MM-ddThh:mm:ss" 年月日时分秒

容器重命名

查看所有容器
docker ps -a

查看所有运行的容器
docker ps

进入容器运行命令
docker exec [containerId|containerName] [exeName] [exe parameter]
eg:docker exec prometheus /bin/sh #进入普罗米修斯的容器中打开一个终端,在此命令中加上-it参数则不会因为该容器正在运行而被阻塞sh进程。

查看容器信息,包括端口映射,挂载,运行命令等
docker inspect [containerId|name]

修改容器设置,野蛮方法
因为基于Linux一切皆文件的定律,容器本身也是文件,容器信息定由文件记录,因此修改对应文件则可修改容器的信息。只要找对信息所放的位置,定能修改成功,
1.修改前先关闭容器;
2.打开配置文件,存放在/var/lib/docker/containers/{容器完整id}/
如果是端口映射hostscofig.json
最主要的是config.v2.json,此处包含了诸多配置,端口,环境变量,fs挂载
以修改端口映射为例,需要修改两个地方
a.hostconfig.json
  “portBindings”:{
    "8080/tcp": //容器
    [{
      “HostIp”:"",
      "HostPort":"8080"//宿主
    }]
  }
b.config.v2.json
  "ExposedPorts":{"8080/tcp":{}} //这里填的都是容器
3.重启docker #sudo service docker restart。通过inspece则可看到修改后的结果了

Docker入门简记的更多相关文章

  1. 第三章 Docker 入门

    第三章 docker 入门 3.1 确保docker已经就绪 首先查看docker程序是否存在,功能是否正常 [#3#cloudsoar@cloudsoar-virtual-machine ~]$su ...

  2. Docker入门教程(九)10个镜像相关的API

    Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...

  3. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

  4. Docker入门教程(七)Docker API

    Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...

  5. Docker入门教程(六)另外的15个Docker命令

    Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...

  6. Docker入门教程(五)Docker安全

    Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...

  7. Docker入门教程(四)Docker Registry

    Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...

  8. Docker入门教程(三)Dockerfile

    Docker入门教程(三)Dockerfile [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第三篇,介绍了Dockerfile的语法,DockerOn ...

  9. Docker入门教程(二)命令

    Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker ...

随机推荐

  1. VMware6.0-vCenter的安装准备及安装

    由于6.0的VCSA安装需要跳板主机来辅助,而在5.5时时可用用OVA导入模式安装的. 首先安装跳板插件 安装完成后,点击setup链接. 设置 Single Sign-On (SSO),将root和 ...

  2. CODEVS 2455 繁忙的都市 SCOI2005(洛谷 P2330)

    题目描述 Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两 ...

  3. pypthon 3.6.5 绘制柱状图中文乱码的基本、根本、高效之解决方案~

    最近在使用做一些数据统计.分析时需要用到画图,这里随大流使用matlab强大的python平台绘图组件pyplot来实现. 然而在使用过程中遇到中文显示框框的问题,对于有强迫症的我简直不能忍啊~ 下面 ...

  4. 修改Chrome启动参数解决跨域问题

    这个做法仅仅是针对自己本机,只是一个权宜方案 --disable-web-security --user-data-dir=本地用户信息目录 之后启动Chrome浏览器即可

  5. JAVA笔记--static

    1.static 修饰变量 public class MyClass { static int i = 4; } 其中static 修饰变量,表示变量 i 属于 MyClass 类,所有的对象共享一个 ...

  6. 前端工程化系列[03]-Grunt构建工具的运转机制

    在前端工程化系列[02]-Grunt构建工具的基本使用这篇文章中,已经对Grunt做了简单的介绍,此外,我们还知道了该如何来安装Grunt环境,以及使用一些常见的插件了,这篇文章主要介绍Grunt的核 ...

  7. HBuilder的扩展插件开发暴露了一个事实:其实不能实现写一次代码实现跨平台App生成

    HBuilder的扩展插件开发,原来并不能生成单独的插件jar,而是以源码 - 类的形式进行开发,这其实就要求必须使用离线打包. 事实上,开发顺序应该是:先弄好离线打包框架,然后在AS里进行扩展插件开 ...

  8. Unity中InitializeOnLoad属性的妙用

    InitializeOnLoad 属性应用的对象是 静态构造函数,它可以保证在编辑器启动的时候调用此函数.根据这个特性,可以在编辑器中设置定期的回调(帧更新),来实现类似watchFile的功能.这里 ...

  9. 集群安装Java环境

    需要安装一个集群环境,发现全部要手动安装java.记录下安装Java环境的过程.虽然,依旧是挨个安装,但总算是有体系了. java 找到下载地址: https://www.oracle.com/tec ...

  10. Docker配置参考

    Docker配置参考 一.参数列表 参考网址:https://docs.docker.com/engine/reference/commandline/dockerd/#options Usage: ...