这是我参与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/
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END