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”是在国外的,所以访问速度很慢,导致无法访问该网址。
解决方法
- 1、找到“daemon.json”文件
- 2、使用vim命令将其打开
- 3、添加“{ "registry-mirrors" :["https://docker.mirrors.ustc.edu.cn"]}”内容
- 4、重启docker即可
参考文献
Y 推荐资源
Y.1 核心资源/核心链接
- Docker官网
- Docker github
- Dockerhub 镜像站官网
- Docker 官方 registry 镜像加速
Y.2 Docker Hub 镜像加速器列表
- Docker 官方镜像
镜像加速器 | 镜像加速器地址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 参考文献
待阅读