Docker安装及原理

  1. Docker是什么
    容器,容器内的应用直接运行在宿主机的内核,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
    每个容器间是互相隔离的,每个容器都有一个属于自己的文件系统,互不影响。

  2. MacOS上安装Docker:
    2.1 从阿里云下载Docker镜像
    http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/
    2.2 安装成功,启动,查看版本信息:

~ $ docker version
Client:
 Version:      17.03.1-ce-rc1
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   3476dbf
 Built:        Fri Mar 17 00:27:41 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.03.1-ce-rc1
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3476dbf
 Built:        Wed Mar 15 20:28:18 2017
 OS/Arch:      linux/amd64
 Experimental: true

2.3 运行hello-world,证明安装成功

~ $ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete 
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

2.4 查看下载的hello-world镜像

~ $ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              d1165f221234        4 days ago          13.3 kB
  1. docker run的流程
    3.1 docker在本机寻找镜像
    3.2 有这个镜像,则使用这个镜像并运行
    3.3 没有这个镜像,则去docker hub上找这个镜像
    --docker hub上有这个镜像,则下载到本地
    --docker hub上没有这个镜像,则返回error

  2. docker的底层原理?
    4.1 docker是怎么工作的
    Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问。
    DockerServer接收到DockerClient的指令,就会执行这个命令。
    4.2 docker为什么比VM快?
    1)docker有着比虚拟机更少的抽象层
    2)docker利用的是宿主机的内核,vm需要guest os
    所以新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统的内核。虚拟机需要加载guest os,而docker直接利用宿主机的操作系统,省略了复杂的过程,所以docker很快,秒级别的。

你可能感兴趣的:(Docker安装及原理)