first install it:

首先安装:

apt install docker.io

基本概念:

镜像:相当于虚拟机里的磁盘文件,里面有一套配置好的系统,应用程序

容器:相当于一个虚拟机实例,一个镜像能打开多个容器,互不干扰,容器里的文件系统都是临时的.改变不影响镜像.

搜索/下载/查看镜像:

docker search 关键词

会根据关键词搜索镜像并显示列表

列表中的镜像大多是 用户名/镜像名 结构,下载的时候要包含用户名.

有个别镜像没用户名,那是经过docker官方认证的安全镜像.可放心下载食用(滑稽脸)

后面会教怎么上传镜像

docker pull 镜像全名

会下载镜像

如果已知镜像全名,可以直接run,会自动下载.

docker images会显示本地所有镜像,会有镜像ID,操作镜像的时候可通过ID操作(在能区分其它镜像的情况下,只输入前几位即可)....

打开容器运行镜像:

建立一个目录给容器内使用:

不要动容器里的文件目录,重启会丢失!要操作文件自己另外挂载目录进去!如果特殊情况(比如你用apt装了程序)非要这么做,请留意后面的[保存当前容器状态为新镜像]

mkdir /docker

接着:

docker run -i -t -v /docker:/docker -p 80:80 nginx /bin/bash

解释:

建立一个容器,运行一个nginx镜像,如果找不到,docker会去官网下载

-i -t  通常成对用,表示让容器的标准输入保持打开,以及让docker建立一个伪终端并附加到容器的标准输入输出上.

-v /docker:/docker 挂载文件夹到容器内

-p 80:80 将主机的80端口转到容器80端口

/bin/bash 打开容器后要运行的指令(允许加参数)

在容器内切换出去:

不停止容器:Ctrl+P Ctrl+Q

停止容器:执行exit指令或者快捷键 Ctrl+A Ctrl+D  (注意:容器停止了但是还是存在的)

查看容器列表:

docker ps -l

容器列表里每个容器都有个ID,操作容器的时候可以通过ID操作,输入前几位就行!里面包含 启动的 和 停止的 容器!

附加到容器控制台:

docker attach 容器ID或容器名

如果容器没运行,得先把它运行起来:

docker start 容器ID或容器名

既然有运行,当然也有停止指令..下面就有↓

删除容器:

docker rm 容器ID或容器名

删除之前如果容器没结束,得先结束掉:

docker stop 容器ID或容器名

删除镜像:

docker rmi 镜像ID或镜像名

删除之前请先删除该镜像相关容器

保存当前容器状态为新镜像:

在容器运行中安装配置好后,可将容器状态保存为镜像,指令是:

docker commit 容器ID或容器名 镜像名

如果想提交到docker镜像中心,得添加这些参数:

-a:作者

-m:说明文本

比如我的语句:

docker commit -a "o70078" -m "this is a test" 4200 o70078/oknginx

上传容器到docker镜像中心:

首先去docker官网注册账号:https://cloud.docker.com/

在机器上登录:

在主机运行 docker login

会让你输入帐号密码登录

然后 docker push 镜像名

导出容器为文件,以及导入文件(所谓的离线分发~):

导出:docker export 容器ID > 文件路径

导入:docker import 文件  (可以是在线的http URL)

docker应用笔记的更多相关文章

  1. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  2. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  3. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  4. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  5. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

  6. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  7. Docker入门笔记

    Docker入门笔记 随笔记录初学Docker遇到的问题, 以免下次再犯. 本机系统Ubuntu18.04 安装 Docker有2个版本 Community Edition (CE) 社区版(免费) ...

  8. Docker入门笔记(1)

    Docker入门笔记(1) 1.安装Docker yum -y install docker-ce 2.查看Docker版本 [root@localhost ~]# docker -v Docker ...

  9. Docker学习笔记总结

    Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/   一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...

  10. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

随机推荐

  1. [js高手之路]构造函数的基本特性与优缺点

    上文,通过基本的对象创建问题了解了构造函数,本文,我们接着上文继续了解构造函数的基本特性,以及优缺点. 每个对象上面都有一个constructor属性( 严格意义上来说,是原型上的,对象是通过查找到原 ...

  2. HTML特殊符号对照表 常用字符实体

    前沿:阿飞表示虽然大部分都不常用,但是有些基本的还是要背下的,比如空格,大于,小于.^_^

  3. 字节序转换与结构体位域(bit field)值的读取 Part 2 - 深入理解字节序和结构体位域存储方式

    上一篇文章讲解了带位域的结构体,在从大端机(Big Endian)传输到小端机(Little Endian)后如何解析位域值.下面继续深入详解字节序,以及位域存储的方式. (1) 我们知道,存储数字时 ...

  4. 总结找到后台路径的N总思路方法

    1, 穷举猜解      现如今可以暴力猜解网站后台登陆地址的软件有很多,从最早的啊D注入工具开始,一直到现在很多常用的工具(通常为SQL注入利用工具)都会带有后台登陆地址猜解的功能. 当然了,这个猜 ...

  5. python -- 装饰器的高级应用

    装饰器和装饰器模式装饰器模式是面向对象的一种设计模式,支持将行为动态增加到已经存在的对象上.当装饰一个对象的时候,就表示独立与其他类实例对象,为该对象扩展了新的功能. python的装饰器不是装饰器模 ...

  6. SpringMVC参数绑定(从请求中接受参数)

    参数绑定(从请求中接收参数) 1)默认类型: 在controller方法中可以有也可以没有,看自己需求随意添加. httpservletRqeust,httpServletResponse,httpS ...

  7. python的计数引用分析(一)

    python的垃圾回收采用的是引用计数机制为主和分代回收机制为辅的结合机制,当对象的引用计数变为0时,对象将被销毁,除了解释器默认创建的对象外.(默认对象的引用计数永远不会变成0) 所有的计数引用+1 ...

  8. [2015-11-23]分享一个批处理脚本,创建iis站点及程序池

    建站批处理 batch_createSites.bat @echo off rem 以管理员身份执行本脚本,可添加多条call 以建立多个站点 call path\to\createSites.bat ...

  9. Statement和PrepareStatement区别

    网上很多都说区别是PrepareStatement可以批处理.实际上二者都是可以进行批处理的. 区别在于: 1.PrepareStatement要求预编译的sql必须是格式固定,使用占位符获取参数. ...

  10. Ext.grid.EditorGridPanel保存

    用get方法传递编辑的数据会出现乱码,解决get乱码的方法就是encodeURI(param),然后在后台转码: String strJson =  new String(request.getPar ...