Docker起步-從Docker的介紹到hello-world的實例

Docker是什么意思?

Docker社提供的用于执行应用程序的容器化环境,是使用Go语言编写的。

集装箱类型?

在构建应用程序执行环境时有两种模式。
– 虚拟机模式
– 容器模式

超级虚拟机形式

在连接主机和虚拟环境之间的角色中,存在着称为超级管理程序的功能。
这个超级管理程序负责进行CPU的分配等任务。
主机操作系统和虚拟机处于隔离状态。
因此,可以在虚拟机上安装任意的操作系统(如Windows和Linux)。

由于安装了操作系统,文件大小较大,启动速度也较慢。

容器类型

通过Docker Engine(而非虚拟机)执行,无需宿主操作系统,而是使用宿主操作系统的内核来运行特定程序。
可以安装Linux、CentOS等映像,但并非完全安装操作系统,而是利用宿主操作系统的内核来使用以上操作系统的命令。
与虚拟机不同,不能在Windows上运行Linux等操作系统。

超级虚拟机型和容器型的比较

虚拟化的开销

在执行某个操作时间接产生的成本:开销.

超级虚拟机类型 jí)

    リソース(CPUの使用率等)を大きく使う、起動、停止に時間を要する。

容器式

    コンテナをアプリケーション実行に必要なものだけを含み、ホストのカーネルを実行するため、動作が早くリソースの使用率を減らすことができる。

应用程序执行的可再现性

超级虚拟机类型

    仮想マシンの環境の違いによりアプリケーションで不具合が起こることがある。

容器式

    特定のアプリケーションを動作させるために必要なものはDockerイメージにまとまっているため、同じコンテナを起動する場合は環境が変わっても動作する

操作系统的自由度

超级虚拟机类型

    好きなOSを使用することができる。

集装箱式

    コンテナはホストSOのカーネルを使用して動作するため、カーネルをサポートしていないOSをうごかすことはできない

分离级别

超级监视器型

    ハードウェアレベルでの仮想化が行われているため、マシンに侵入された際も、影響が及びにくい。

容器形式

    • ホストOSの1プロセスとして機能するため、分離レベルが引く

 

    • 不用意なパッケージ等のインストールは避けるべき

 

    Publicで公開しないようにする

Docker的安装

从Docker官方网站下载

Home

スクリーンショット 2018-09-27 0.47.40.png
スクリーンショット 2018-09-27 0.47.00.png

* 虽然有登录设置等选项,但先跳过。

让我们尝试显示“你好,世界”吧。

请在终端中执行以下命令。

$docker run hello-world

然后,各种不可思议的事情发生了。
祝贺您!成功了。

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
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/

暂时试着再执行一次。

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/

刚才的行数减少了,而且处理速度也变快了!

这是什么意思!?
请注意第一次和第二次之间的差异!!

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for hello-world:latest

由于本地没有 hello-world 映像,它从 library/hello-world 拉取过来了。

反而第二次情况下,由于在第一次时已经将hello-world镜像带到本地,所以上述时间减少了。

因此,

$docker run hello-world

除了执行之外,这个命令还可以… (Translation: In addition to just executing, this command can also…)

docker pull    イメージの取得
docker create    コンテナの作成
docker start      コンテナの起動

第一个选项:包含了。
而在第二次执行中,pull和create的时间就被削减了!!

我的想法

真没想到可以轻松地创建容器,感到非常惊讶。
希望能通过未来的课程更深入地理解为什么Docker是好的。

请参考

从零开始通过Docker构建应用程序执行环境

广告
将在 10 秒后关闭
bannerAds