Update Docker_基础.md

This commit is contained in:
heibaiying 2020-03-25 10:57:18 +08:00 committed by GitHub
parent 87171d8a47
commit 65125b561c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -17,7 +17,7 @@ Docker 使用 Go 语言进行开发,基于 Linux 内核的 cgroupnamespace
- **runc** :是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。 - **runc** :是一个 Linux 命令行工具,用于根据 [OCI容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。
- **containerd** :是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。 - **containerd** :是一个守护程序,它管理容器生命周期,提供了在一个节点上执行容器和管理镜像的最小功能集。
下图体现了 Docker 和传统虚拟化方式的不同之处:传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,再在该系统上运行所需应用进程;而 Docker 容器内的应用进程则是直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此要比传统虚拟机更为轻便。 下图体现了 Docker 和传统虚拟化方式的差异:传统虚拟机技术是虚拟出一套硬件后,再在其上运行一个完整操作系统,之后可以在该系统上运行所需的应用进程;而 Docker 容器内的应用进程则是直接运行于宿主的内核,容器则没有自己的内核,也没有进行硬件虚拟,因此要比传统虚拟机更为轻便。
<div align="center"> <img src="../pictures/docker与虚拟机.png"/> </div> <div align="center"> <img src="../pictures/docker与虚拟机.png"/> </div>
@ -101,7 +101,7 @@ run 是 docker 中最为核心的一个命令,用于新建并启动容器,
+ **-i** :表示使用交互模式,始终保持输入流开放; + **-i** :表示使用交互模式,始终保持输入流开放;
+ **-t** :表示分配一个伪终端,通常和 `-i` 结合使用,表示使用伪终端与容器进行交互; + **-t** :表示分配一个伪终端,通常和 `-i` 结合使用,表示使用伪终端与容器进行交互;
+ **-d** :以后台方式运行容器; + **-d** :以后台方式运行容器;
+ **--name** :指定容器启动容器的名字,如果不指定,则由 docker 随机分配; + **--name** :指定启动容器的名字,如果不指定,则由 docker 随机分配;
+ **-c** :用于给运行在容器中的所有进程分配 CPU 的 shares 值,这是一个相对权重,实际的处理速度与宿主机的 CPU 相关; + **-c** :用于给运行在容器中的所有进程分配 CPU 的 shares 值,这是一个相对权重,实际的处理速度与宿主机的 CPU 相关;
+ **-m** :用于限制为容器中所有进程分配的内存总量,以 B、K、M、G 为单位; + **-m** :用于限制为容器中所有进程分配的内存总量,以 B、K、M、G 为单位;
+ **-v** :挂载数据卷 volume可以用多个 `-v` 参数同时挂载多个 volume。volume 的格式为:`[host-dir]:[container-dir]:[rw:ro]` `[rw:ro]` 用于指定数据卷的模式,`rw` 代表读写模式,`ro` 代表只读模式。 + **-v** :挂载数据卷 volume可以用多个 `-v` 参数同时挂载多个 volume。volume 的格式为:`[host-dir]:[container-dir]:[rw:ro]` `[rw:ro]` 用于指定数据卷的模式,`rw` 代表读写模式,`ro` 代表只读模式。