事先说明,本教程使用的是Mac版docker桌面版,命令执行都是在Mac终端实现,不管什么平台,命令、操作都是一样的
Docker概述与历史
该处去官网看一下或者自行百度,个人建议还是要了解一下,毕竟学习一个新技术首先就是要了解该技术,不要觉得无用
Docker安装
镜像(image):
docker镜像就好比是一个模板,就可以通过这个模板来创建容器服务,nginx镜像 ==>run ==> nginx01容器(提供服务器),通过这个镜像就可以创建多个容器(最终服务运行或者项目运行就是在容器中的)
容器(Container):
Docker利用容器技术,独立运行一个或一个组应用,通过镜像来创建的。
启动、停止、删除,基本命令
目前就可以把这个容器理解为就是一个易简的Linux系统
仓库(repository):
仓库就是存放镜像的地方。
仓库分为公有仓库和私有仓库
Docker Hub(默认是国外的)
阿里云、华为云等都有容器服务器(配置镜像加速器)
安装并配置国内镜像
具体如何安装到官方下载即可,我这里使用的是Mac 的桌面版
下载Docker
https://docs.docker.com/get-docker/
配置国内镜像
这里我以桌面版举例
查看当前 Docker 的 Registry 和 Registry Mirrors
192:~ kevin$ docker info | grep Registry
Registry: https://index.docker.io/v1/
从上面的信息来看基本上就是 docker 的官方默认配置,美国 docker 地址,使用 nslookup 查询
192:~ kevin$ nslookup index.docker.io
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
index.docker.io canonical name = elb-io.us-east-1.aws.dckr.io.
elb-io.us-east-1.aws.dckr.io canonical name = us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com.
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 34.204.125.5
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 34.200.7.11
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 34.192.114.9
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 3.220.75.233
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 52.6.170.51
Name: us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com
Address: 52.55.43.248
从 nslookup 返回可以看到 docker 使用的是 aws 的服务,而从域名上也能看出来服务器则位于美国东部。
配置 Registry Mirrors
配置路径:Preferences -> Docker Engine。添加如下配置,上面是 docker 官方国内源,下方为中科大国内 docker 镜像源
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn"
]
点击 “Apply & Restart” 并等待重启完成
注:这里的 registry-mirrors 是一个集合,也就是一个数组,所以我们可以设置多个 registry-mirrors,Docker 会轮询并使用列表中的 registry-mirrors。
验证配置
在终端执行如下命令,可以看到 Registry Mirrors 已经生效
192:~ kevin$ docker info | grep -C 5 "Registry"
ID: 33MU:ROG2:CH5V:SSE3:5PMU:5KXJ:C6PM:SAES:NDMH:PUV4:QGFR:JYO5
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: gateway.docker.internal:3128
HTTPS Proxy: gateway.docker.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
--
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://registry.docker-cn.com/
https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
附录
Docker Daemon 配置的官方文档如下,可参考:
https://docs.docker.com/engine/reference/commandline/dockerd/
常用的几个国内源
Docker 官方中国仓库:https://registry.docker-cn.com
中科大 USTC: https://docker.mirrors.ustc.edu.cn
网易 163 镜像:http://hub-mirror.c.163.com
Run流程和Docker原理
Run运行流程
底层原理
Docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问
DocketServer接受到Docker-Client的指令,就会执行这个命令
Docker为什么比VM快?
1、Docker有着比虚拟机更少的抽象层
2、docker利用的是宿主机的内核,vm需要Guest OS
所以,新加一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导,虚拟机是加在Guest OS,分钟级别;而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级。
Docker常用命令
帮助命令
docker version #查看docker的版本信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令
帮助文档地址:https://docs.docker.com/reference/
镜像命令
docker images 查看所有本地的主机上的镜像
192:~ kevin$ docker images
REPOSITORY TAG IMAGE ID