[Docker] Docker的概念原理与基本用法【待完善】

1 概述

1.1 简述

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何支持 docker 的机器上运行。
容器是完全使用沙箱机制,相互之间不会有任何接口调用。

1.2 优缺点

1.2.1 优点

1)快
运行时的性能快,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
2)敏捷
像虚拟机一样敏捷,而且会更便宜,在 bare metal(裸机)上布署像点个按钮一样简单。
3)灵活
将应用和系统“容器化”,不添加额外的操作系统
4)轻量
在一台服务器上可以布署 100~1000 个 Containers 容器。
5)便宜
开源的,免费的,低成本的。

1.2.2 缺点

所有容器共用 linux kernel 资源,资源能否实现最大限度利用,所以在安全上也会存在漏洞。

1.3 版本

目前最近的2个版本

  • docker-ce
docker-ce-18.06.3.ce-3.el7
  • docker-ee

2 docker的基本用法

2.1 镜像相关操作

从 dockerhub 查找镜像

  • docker search {某个镜像的名称}
  • 查找对应DockerHub仓库中的镜像
  • --filter=stars=50 : 列出收藏数不小于指定值的镜像
docker search tomcat
...
docker search centos

解释说明:

  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否docker 官方发布
  • stars: 类似Github 里面的star,表示点赞、喜欢的意思。AUTOMATED: 自动构建。

补充

[root@guoweixin ~]# docker search --help
Usage: docker search [OPTIONS] TERM
Search the Docker Hub for images
Options:
-f, --filter filter Filter output based on conditions provided
根据提供的条件过滤器输出
--format string Pretty-print search using a Go template
⽤Go模板打印出漂亮的搜索结果
--limit int Max number of search results (default 25)
搜索结果的最⼤数量(默认值为25)
--no-trunc Don't truncate output
不要截断输出

下载镜像

docker pull [选项] [Docker Registey 地址[:端口号]/] 仓库名[:标签]
从 Docker 镜像仓库获取镜像

  • Docker 镜像仓库地址: 地址的格式一般是 < 域名 /IP>[: 端口号 ] 。默认地址是 Docker Hub
  • 仓库名:这里的仓库名是两段式名称, 即 < 用户名 >/< 软件名 > 。对于 Docker Hub ,如果不给出用户名,则默认为 library ,也就是官方镜像。
docker pull centos

又例如:我们需要一个tomcat的镜像来作为我们的web服务。通过 docker pull获取镜像

docker pull tomcat:版本号 //不写 :版本号 代表laster版本

查看本地镜像

要想列出已下载下来的镜像,可以使用 docker image ls 命令
列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间。

其中,仓库名、标签在之前的基础概念已经介绍过了。
镜像 ID 则是镜像的唯一标识,一个镜像可以对应多个标签。
因此,如果拥有相同的 ID,因为它们对应的是同一个镜像。

docker images
  • -a--all,列出所有镜像
  • -q--quiet,只显示镜像的id
  • --digests: 显示镜像的摘要信息

REPOSITORY 镜像的仓库源
TAG        镜像的标签
IMAGE ID   镜像的 ID
CREATED    镜像创建时间
SIZE       镜像大小

同一个仓库源可以有多个 TAG,代表这个仓库源的不同版本,我们使用REPOSITORY:TAG 定义不同的镜像;
如果你不定义镜像的标签版本,docker将默认使用 lastest 镜像!

将镜像做成离线压缩包

docker save -o centos.tar.gz centos
ls ./

解压离线镜像包

docker load -i centos.tar.gz

删除镜像

docker rmi -f centos:latest

K FAQ/问题集

Q1 配置docker镜像加速器?

  • Step1 登陆阿里云镜像仓库

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
如果没有开通,可开通阿里云的镜像服务

编辑/etc/docker/daemon.json

  • Step2 重启docker
systemctl daemon-reload
systemctl restart docker

Q2 docker hub官网进不去?

问题分析

docker hub进不去是因为“hub.docker.com”是在国外的,所以访问速度很慢,导致无法访问该网址。

https://hub.docker.com/

解决方法

  • 1、找到“daemon.json”文件
  • 2、使用vim命令将其打开
  • 3、添加“{ "registry-mirrors" :["https://docker.mirrors.ustc.edu.cn"]}”内容
  • 4、重启docker即可

参考文献

Y 推荐资源

Y.1 核心资源/核心链接

  • Docker官网

https://docs.docker.com/

  • Docker github

https://github.com/moby/moby

  • Dockerhub 镜像站官网

https://registry.hub.docker.com

  • Docker 官方 registry 镜像加速

https://dashboard.daocloud.io/mirror

Y.2 Docker Hub 镜像加速器列表

  • Docker 官方镜像

https://hub.docker.com/

镜像加速器 镜像加速器地址URL 专属加速器 其他加速
Docker 中国官方镜像站 https://registry.docker-cn.com ... Docker Hub
Dao Cloud 镜像站 http://f136db2.m.daocloud.io/ 可登录,系统分配 Docker Hub
Azure 中国镜像站 https://dockerhub.azk8s.cn Docker Hub / GCR / Quay
科大镜像站 https://docker.mirrors.ustc.edu.cn ... Docker Hub / GCR / Quay
阿里云 https://docker.mirrors.ustc.edu.cn 需登录,系统分配 Docker Hub
七牛云 https://reg-mirror.qiniu.com ... Docker Hub / GCR / Quay
网易云 https://hub-mirror.c.163.com ... Docker Hub
腾讯云 https://mirror.ccs.tencentyun.com ... Docker Hub

Y.3 其他

https://cr.console.aliyun.com/cn-hangzhou/instances/artifact

X 参考文献

待阅读

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章