这是我参与8月更文挑战的第25天,活动详情查看:8月更文挑战
Hello world
运行hello-world
$ sudo docker run hello-world
Hello-World执行流程
# 没有找到镜像
Unable to find image 'hello-world:latest' locally
# 远程拉取镜像
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:0fe98d7debd9049c50b597ef1f85b7c1e8cc81f59c8d623fcb2250e8bec85b38
Status: Downloaded newer image for hello-world:latest
# 说明docker已经安装成功
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
查看hello-world镜像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 5 months ago 13.3kB
底层原理
Docker是什么工作?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过socket从客户端访问!
DockerServer接收到DockerClient的指定,就会执行这个命令。
Docker为什么比VM快?
Docker有着比虚拟机更少的抽象层Docker利用的是主机的内核,vm需要Guest OS
所以说,新建一个容器的时候,docker不需要像虚拟机一样加载一个操作系统的内核,避免引导。虚拟机是加载Guest OS分钟级别的,而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级的。
Docker容器 | VM | |
|---|---|---|
| 虚拟化类型 | OS虚拟化 | 硬件虚拟化 |
| 性能 | =物理机性能 | 5%-20% 的损耗 |
| 隔离性 | NS隔离 | 强 |
Qos | Cgroup 弱 | 强 |
| 安全性 | 中 | 强 |
GuestOS | 全部 | 全部 |
解决docker命令权限问题(sudo)可以使用,也可以不使用
# 创建docker组
$ sudo groupadd docker
# 将当前用户加入docker组
$ sudo gpasswd -a ${USER} docker
#重启docker服务
$ sudo service docker restart
#刷新docker组成员
$ newgrp - docker
帮助命令
docker version # 查看docker的版本信息
docker info # 查看docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令
帮助文档的地址:docs.docker.com/reference/