Docker学习笔记

Posted 风间悠香

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker学习笔记相关的知识,希望对你有一定的参考价值。

基础知识与准备:

一、基础知识:

1.Docker runtime

  runtime是容器真正运行的地方。借助JAVA中JVM的概念来理解。

  lxc、runc、rkt是目前主流的三种容器runtime。

  •   lxc是Linux上老牌的容器runtime。Docker最初也是用lxc作为runtime的。
  •   runc是Docker自己开发的runtime。目前Docker的默认runtime。符合oci规范。
  •   rkt是CoreOS开发的容器runtime。符合oci规范,因而能够运行Docker的容器。

2.容器管理工具

  lxd是lxc对应的管理工具。

  runc的管理工具是Docker engine,包括后台deamon和cli两部分,我们通常提到的Docker一般就是指docker engine。

  rkt的管理工具是rkt cli。

3.容器定义

  docker image是Docker容器的模板,runtime根据docker image来创建容器。

  dockerfile是包含若干个命令的文本文件,可以通过该文件创建出docker image。

  定义过程:dockerfile--->docker image--->container

4.容器仓库(Registry)

  Registry分为共有和私有两种:

  Docker Registry  :私有仓库

  Docker Hub:共有仓库(私有收费)

  Quay.io :另一个共有仓库

5.容器OS

  除了在传统的Linux、MACOS、Windows上运行容器,目前也存在一些容器OS,例如CoreOS、Atomic、Ubuntu Core等。

  比如传统操作系统,容器操作系统体积更小,启动更快。

6.容器平台

  1.容器编排引擎:docker swarm、kubernetes、mesos+marathon等。

  2.容器管理平台:Rancher、ContainerShip等。

  3.基于容器的PaaS:Deis、Flynn、Dokku等。

7.容器网络

  docker network

  flannel

  weave

  calico

8.服务发现

  etcd

  consul

  zookeeper

9.监控

  docker ps/top/stats

  docker stats API

  sysdig

  cAdvisor/Heapster

  Weave Scope

10.数据管理、日志管理和安全性

  数据管理:REX-Ray

  日志管理:docker logs、logspout

  安全性:OpenSCAP

  

二、实验环境准备

1.环境选择

  管理工具:Docker engine

  runtime:runc,Docker默认runtime

  操作系统:Ubuntu16.04

2.安装Docker(Docker CE版,即Community Edition社区版,Docker EE为Enterprise Edition收费版)

  • Ubuntu主机能够上网
  • 更新国内apt源(例如aliyun的源)
  • 安装包,允许apt命令HTTPS访问Docker源:sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  • 添加Docker官方GPG key:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 将Docker的源添加到/etc/apt/source.list中:sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 安装Docker:sudo apt-get update & sudo apt-get install docker-ce 

3.运行第一个容器

  sudo docker run -d -p 80:80 httpd

  上述命令中-d代表在后台运行容器,-p表示端口映射(容器端口80映射到host的端口80),httpd为docker image名。

  使用host的浏览器输入http://localhost:80,显示It works,表示容器运行成功。

4.镜像下载加速

  如果docker在下载镜像时很慢(服务器在国外)可以按以下步骤使用代理:

  • 在daocloud.io注册一个用户
  • 登录后在菜单中点击“加速器”
  • 复制命令在host中执行
  • 重启docker deamon。sudo systemctl restart docker.service

 

容器使用:

一、构建镜像

  构建镜像有两种方式:docker commit和利用dockerfile来创建。

  

  docker commit:

  1.运行容器。

  2.修改容器。

  3.将容器保存为新的镜像。

  过程:

  [email protected]:~$ sudo docker run -it ubuntu

  [email protected]:/# apt-get install -y vim

  

 

  

 

以上是关于Docker学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

docker学习笔记- 仓库

Docker学习笔记 — 开启Docker远程访问

Docker学习笔记 — docker仓库的镜像怎么删除

docker学习笔记2:容器操作

docker学习笔记7:发布镜像到docker hub上

Docker学习笔记