Docker

什么是Docker 1

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux
机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

如上所述,Docker 是一个开源的应用容器引擎,这与平时所说的Docker 有所区别,平时我们所说的是一个统称,是一个包含客户端、守护进程、镜像、容器的可以运行的完整的Docker环境。
Docker 是一个开源的应用容器引擎,是容器技术的体现。Docker类似于一个平台一个环境,在Docker平台上通过镜像创建一个容器,然后容器运行在Docker平台上。通过Docker客户端发送指令给守护进程,守护进程分发、控制容器。
简单概括一下,Docker 就像是一个网站,有客户端(Docker 客户端)、服务端,服务端又分为框架(守护进程)和应用程序(容器),而应用程序是通过压缩包(镜像)解压得到的。

docker服务命令格式

systemctl [参数] docker

相关参数 :
  start 开启服务
  stop 关闭
  restart 重启
  status 状态

docker卸载

sudo apt-get remove docker-ce
sudo rm -rf /etc/systemd/system/docker.*
sudo rm -rf /var/lib/docker/
sudo rm -rf /etc/docker

docker基本目录简介

  • /etc/docker/   docker的认证目录
  • /var/lib/docker/   docker的应用目录

安装Docker-CE

  • 安装Docker-CE

镜像 2

镜像(Mirroring)是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。

装过系统的人应该都知道系统镜像或者叫ISO文件,可以通过它还原出一个操作系统。那么什么是Docker镜像?类似的,Docker镜像 就像是一个压缩包,通过docker run 启动镜像(创建并启动容器)。

镜像的相关操作

镜像的相关操作包括 搜索、查看、获取、重命名、删除、导出、导入、历史、创建 。

镜像搜索

命令格式:

docker search [OPTIONS] TERM

搜索docker镜像是否存在_docker search

docker search 搜索的是Docker Hub(镜像仓库) 上的镜像
下图为 docker search 与 Docker Hub 搜索redis 的对比

搜索docker镜像是否存在_docker search_02

--no-trunc 参数

描述信息不会被截断

docker search --no-trunc redis
docker search redis

搜索docker镜像是否存在_docker search_03

--limit 参数

返回个数,默认为25,可设置[1-100]之间的范围

docker search redis --limit=2
docker search redis --limit=5
docker search redis --limit=0

搜索docker镜像是否存在_docker images_04

-f (--filter) 参数

支持以下过滤

  • stars (int - number of stars the image has)
  • is-automated (boolean - true or false) - is the image automated or not
  • is-official (boolean - true or false) - is the image official or not

过滤stars大于等于50/大于等于30/大于等于10

docker search redis -f stars=50
docker search redis -f stars=30
docker search redis -f stars=10

搜索docker镜像是否存在_docker images_05

多条件联合筛选

docker search redis -f stars=10 -f is-automated=true
docker search redis -f stars=20 -f is-automated=true
docker search redis -f stars=10 -f is-official=true

搜索docker镜像是否存在_搜索docker镜像是否存在_06

--format 格式化输出

通过GO 语言的模板格式化输出内容

docker search --format "table {{.Name}}\t{{.IsAutomated}}\t{{.IsOfficial}}\t{{.Description}}\t{{.StarCount}}" redis -f stars=50
docker search --format "{{.Name}}\t{{.IsAutomated}}\t{{.IsOfficial}}\t{{.Description}}\t{{.StarCount}}" redis -f stars=50

搜索docker镜像是否存在_Docker_07

镜像查看

命令格式:

docker images [OPTIONS] [REPOSITORY[:TAG]]

搜索docker镜像是否存在_docker search_08

--digests 参数

显示digests

搜索docker镜像是否存在_docker search_09

--filter 参数

支持以下过滤

  • dangling (boolean - true or false)
  • label (label=<key> or label=<key>=<value>)
  • before (<image-name>[:<tag>], <image id> or <image@digest>)
  • since (<image-name>[:<tag>], <image id> or <image@digest>)
  • reference (pattern of an image reference)

before

查找创建时间在指定image 之前的image

搜索docker镜像是否存在_搜索docker镜像是否存在_10

since

查找创建时间在指定image 之后的 image

搜索docker镜像是否存在_Docker_11

before&since

搜索docker镜像是否存在_docker_12

--format

支持以下字段

  • ID----Image ID
  • Repository----Image repository
  • Tag----Image tag
  • Digest----Image digest
  • CreatedSince----Elapsed time since the image was created
  • CreatedAt----Time when the image was created
  • Size----Image disk size

--no-trunc

搜索docker镜像是否存在_docker search_13

--quiet

搜索docker镜像是否存在_docker search_14


到此结  DragonFangQy 2018.11.28


  1. Docker-百度百科 ↩︎
  2. 镜像-百度百科 ↩︎