1 docker 优势,一次创建或配置可以在任意时间、任意环境让应用正常的运行。

  • 快速交付和部署,开发人员可以使用镜像快速构建一套标准的开发环境;开发完后测试和运维人员可以直接使用相同的环境来部署代码。
  • 更轻松的迁移和扩展,docker容器可以在任意平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。
  • 更简单的更新管理,使用 dockerfile 只需修改配置就可以代替以前的大量更新工作。

2 概念区分:镜像、容器、仓库

2.1 docker镜像:类似于虚拟机镜像,可以理解为面向 docker 引擎的只读模板,包含了文件系统。镜像是创建docker 容器的基础。通过版本控制和增量的文件系统,来创建和更新现有的镜像。

2.2 docker容器:类似于轻量级的沙箱,docker 利用容器来运行和隔离应用。镜像自身是只读的,容器从镜像启动的时候,docker 会在镜像的最上层创建一个可写层,镜像本身保持不变。

2.3 docker仓库:类似于代码仓库,是 docker 集中存放镜像文件的场所。

2.4 registry(注册服务器):存放仓库的地方

3 ubuntu 16.04 系统下安装docker 环境

方法一:安装老版本

$ sudo apt-get install apt-transport-https
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update 之后,可以通过下面的命令来安装最新版本的 Docker:
$ sudo apt-get install -y lxc-docker 在安装了 Docker 官方软件源后,若需要更新 Docker 软件版本,只需要执行以下命令即可升级:
$ sudo apt-get update -y lxc-docker

方法二:安装新版本docker-ce

sudo apt-get update

//Install packages to allow apt to use a repository over HTTPS:
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common //Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
//国内用户可以使用镜像源加快安装速度
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - /*
Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint.
*/
sudo apt-key fingerprint 0EBFCD88 //add docker repository to source.list set up the stable repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
//国内用户可以使用国内镜像源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" //INSTALL DOCKER CE
sudo apt-get update //Install the latest version of Docker CE
sudo apt-get install docker-ce

3.2 建立 docker 用户组

默认情况下,docker 命令会使用 unix socket 与 docker 引擎通信。只有 root 和 docker 组的用户才可以访问 docker 引擎的 unix socket。一般将需要使用docker 的用户添加到 docker 用户组

//建立  docker  组:
sudo groupadd docker //将当前用户加入 docker 组:
sudo usermod -aG docker $USER

退出当前终端并重新登录

4 docker 运行前需要本地存在对应的镜像,如果本地不存在,docker 会尝试从默认镜像仓库下载,也可以通过配置使用自定义镜像仓库。

4.1 镜像加速

对于国内用户从中央仓库下载速度会很慢,可以使用国内镜像加速下载。配置方法 如下:我的系统是ubuntu16.04

方法一:

vi etc/docker/daemon.json

//在文件中添加如下内容
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

保存后重新启动docker

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

方法二:

//关闭docker服务
# systemctl stop docker // configure the Docker daemon with the --registry-mirror startup parameter:
# dockerd --registry-mirror=https://registry.docker-cn.com

操作完成后检查加速是否成功:

docker info

看到如下内容便成功了

5 常用命令

5.1 获取镜像

docker pull NAME[:TAG]

如果不显示指定TAG,默认下载最新版本。

例如 docker pull ubuntu:14.04,下载14.04标签的ubuntu镜像。也可以指定注册服务器仓库下载,使用如下命令

sudo docker pull dl.dockerpool.com:/ubuntu   //表示从Dockerpool 社区镜像源dl.dockerpool.com 下载最新的 ubuntu 镜像

tag 信息用于标记统一仓库的不同镜像

更新本地镜像标签命令

docker tag 原tag 目标tag
例如:
docker tag dl.dockerpool.com:/ubuntu:12.04 ubuntu:12.04

5.2 查看镜像信息

//可以查看本机上已有的镜像
docker images
//docker inspect 命令可以查看镜像的详细信息

5.3 搜寻镜像:docker search,如下

sudo docker search mysql

5.4 删除镜像、容器:

5.4.1 使用镜像标签删除镜像 docker rmi IMAGE[IMAGE...] 其中IMAGE 可以为标签或 ID

//例如要删除 dl.dockerpool.com:5000/ubuntu:latest
sudo docker rmi dl.dockerpool.com:/ubuntu

5.4.2 使用镜像 ID 删除镜像

docker rmi 镜像ID

会尝试删除所有指向该镜像的标签,然后删除镜像本身。

说明:当该镜像创建的容器存在时,镜像文件默认是不能删除的。

5.4.3 查看本机上所有容器

docker ps -a

6 创建镜像的方式有3种

  • 6.1 基于已有的镜像容器创建
  • 6.2 基于本地模板导入
  • 6.3 基于dockerfile 创建

6.1 基于已有的镜像容器创建

docker commit [options] container [repository:[tag]]

主要选项有:

  • -a, --author="",作者信息
  • -m, --message="",提交消息
  • -p,--pause=true,提交时暂停容器运行

6.2 基于本地模板导入,导出和载入镜像

//导出镜像,mysql
docker same -o mysql.tar mysql //载入镜像,从本地文件中导入到本地镜像库
docker load --input mysql.tar
或者
docker load < mysql.tar

7 上传镜像,默认上传到 dockerhub 官方仓库

docker push NAME[:tag]

docker 概念初识的更多相关文章

  1. Docker 概念及基本用法

    Docker 概念及基本用法 一. 本节内容简介 本实验中我们初步接触Docker的概念和基本用法.需要依次完成下面几项任务: 理解Docker是什么 学习如何在Linux上安装Docker 学习如何 ...

  2. 【Docker】容器、虚拟机与Docker概念全解析

    导读 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.本文立足于新手,从容器和虚拟机两个大 ...

  3. docker概念

    一.docket概述 什么是docker? 为什么docker会出现 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不 ...

  4. docker 概念 | 安装 | 基本使用

    Docker 是世界领先的软件容器平台,所以想要搞懂Docker的概念我们必须先从容器开始说起. 一 先从认识容器开始 先来看看容器较为官方的解释 一句话概括容器:容器就是将软件打包成标准化单元,以用 ...

  5. Docker 概念-2

    Docker 是什么? 说了这么多, Docker 到底是个什么东西呢?我们在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机. 可能很多读者朋友都用过虚拟机,而对容器这个概念比较的陌 ...

  6. Docker 概念-1

    阅读本文大概需要15分钟,通过阅读本文你将知道一下概念: 容器 什么是Docker? Docker思想.特点 Docker容器主要解决什么问题 容器 VS 虚拟机 Docker基本概念: 镜像(Ima ...

  7. Docker大行其道—初识

    导读 随着分布式.云计算.大数据的火热爆发,大量的云计算集群出现,光凭计算机硬件配置的已经无法再次一较高下,虚拟化成为其中最核心的技术.虚拟化既可以通过硬件模拟,也可以通过操作系统层面去实现,近年来热 ...

  8. Docker之初识(一)

    1.简介 今年四月份公司逐步改用docker容器来部署应用,当时自己刚踏出学校大门,平时开发都是环境都是早已安装好,因此一直没怎么了解Docker这玩意.公司里各位开发大佬说这是个好东西,可以很方便的 ...

  9. Docker概念(二)

    说明:         一直想学Docker,容器.镜像.仓库什么的好难理解就没怎么看了,最近下定决心好好看看,google.Baidu发现这篇好文章,看完差不多有个大概的理解.里面的内容基本上来以下 ...

随机推荐

  1. 取消Eclipse SVN的自动链接方式

    1. 选中指定的项目名(有文件夹样子的那个) 2. 右键,在在弹出菜单选择 Team 3. 然后再点击, Disconnect 即可.

  2. (转)unity3d插件 HUD Text 学习

    转自:http://www.cnblogs.com/code1992/p/3657291.html 使用版本 NGUI_HUD_Text_v1.11 .英语水平差,难免有很多不足之处,忘批评指正.本文 ...

  3. Package.json小结

        生成package.json 定位到想放置package.json的目录,运行npm init,根据提示就可以生成package.json文件,其中test command可以为空. 安装mo ...

  4. cygwin64安装wget和apt-cyg

    说实话,网上的教程要么不适用,要么不能用,唯有多次试错之后才杀出一条血路. 1.安装cygwin 2.勾选wget 这个如果忘记勾选了,就再次打开setup.exe,选择如下操作,即可. 然后点击下一 ...

  5. 【Tip】如何在chrome浏览器中查看网页的Header

    步骤:打开“开发者工具”,点Network标签,然后刷新网页,选择Name中的第一项,再点右边的Headers,就出来了. 似乎有点复杂,配合下面的图看就一目了然了.

  6. 从servlet中获取spring的WebApplicationContext

    需要做一个参数初始化类,当web应用被加载时从数据库里取出相关的参数设置 ,并把这些参数放置到application里,jsp页面可以从中取出. 1.在web.xml中配置: <servlet& ...

  7. Proguard随笔

    - ProGuard是一个压缩.优化和混淆Java字节码,它能够删除字节码中无用的类.字段.方法和无用的凝视,还能够对类.字段.方法和属性进行混淆. - 字节码事实上包括了大量的调试信息,从而非常ea ...

  8. mac 终端 使用 gnu coreutils 工具 ls 颜色显示

    mac 终端默认 ls 命令无颜色显示: 1: 使用 ls -G 可以显示基本颜色 2:使用 gnu coreutils 工具 mac 终端 使用 gnu coreutils 工具 ls 颜色显示 以 ...

  9. 谈一谈chrome浏览器使用

    F3或Ctrl+F5: 查找本网页里面的内容,匹配到即可高亮. F6:回到地址栏 Ctrl+J:显示下载内容 Ctrl+N: 新建一个标签页 F10:选项 F11:显示全屏 F12:调试网页 大家有什 ...

  10. serialport控件的详细用法

    http://www.cnblogs.com/jerry-bian/archive/2012/01/10/2317861.html 最近在做通讯协议,关于SerialPort类 DataReceive ...