初学者学习Docker的第一部分 – Docker是什么
首先
由于在工作中开始使用Docker和Kubernetes,作为一个初学者,我对它们的了解并不深,因此本文记录了我在各种图书和课程中调查和学习的内容。
在学习了一定程度的Docker后,计划继续学习Kubernetes的内容。
Docker是什么?
Docker是什么样的技术?
像我这样的初学者,如果一开始就学习太深入的内容,会感到非常困惑…
首先,我想从一些“大致了解”的内容开始学习…
首先,我会尝试阅读一下Docker文档的概述部分。
Docker是一个开放的平台,用于开发、移动、运行应用程序。
借助Docker,您可以像管理应用程序一样管理基础设施。
通过充分利用Docker的方法,您可以快速进行测试和代码部署,显著缩短从编写代码到在生产环境中运行的时间。
Docker 提供了在容器(container)中进行应用程序打包和执行的功能,容器是一种轻量级的隔离环境(isolated environment)。
通过容器技术可以方便地管理基础设施,使部署变得容易,这是一种简化的感觉吧。
基础设施管理和部署变得更加简便,这是什么意思?
是的,因为我只是大致阅读,所以当然会变成这样。
在软件开发中,我认为通常情况下是应用程序开发人员编写代码,基础设施/运维工程师将其部署到生产环境中。
在这种情况下,开发环境/测试环境/生产环境各自的环境并不完全相同。
也就是说,“在开发环境中可以运行,但在生产环境中不能运行”这种情况会发生。
然后,通过使用Docker,似乎可以解决这个问题。
开发人员将代码和库打包成一个称为Docker Image的东西(进行容器化),然后将Docker Image直接交给基础设施/运维工程师,在生产环境中进行部署。
通过这样做,“在开发环境中运行正常而在生产环境中运行不正常”的问题可以得到避免。
虚拟化技术(VM)和什么不同?
使用容器技术在不同的机器上构建相同的环境。
有点类似虚拟化技术。不同之处在于以下感觉。
-
- 仮想化
ホストOS上にゲストOSを用意してアプリケーションを実行する
Docker
ホストOS上に1つのDocker Engineを起動して複数のコンテナを起動する
使用Docker的好处是…
-
- 軽い
ゲストOSを複数作成するわけではないのでプロセッサやメモリの消費が少ない
コンテナ上に「OSっぽいもの」はあるが、OSの機能のいくつかをホストOSに託すことで軽くなっている
ストレージの使用量が減る
OSイメージのサイズがだいたい5~10GBくらいに対して、Docker Imageのサイズは1~2GBらしい
起動時間が早い
仮想化と比べると、カーネルをいちいちロードする手間が省ける
複数環境での運用が楽
DockerさえインストールされているOSならどこでもコンテナを起動できる
关于出现到目前为止的术语
在容器、Docker镜像和Docker引擎等方面,有一些词汇出现了但没有解释其含义。在这里我简要解释一下。
容器
データやプログラムを入れておくための入れ物、箱みたいないイメージでしょうか。
とりあえずそれくらいのイメージで、、、
Docker镜像
コンテナを作成するための素。
中に入れるソフトウェアによってそれぞれ用意されたイメージを使います。
nginxを利用するために公開されてるイメージを使う、みたいな感じ。
コマンドの使い方とかは後でいろいろ出てくるんですが、下記のような感じでイメージを取得します。
docker pull nginx
Docker 引擎
Dockerをつかうためにインストールするソフトウェアのこと。
让我们尝试安装Docker。
由于我使用的是MacBook,所以我选择了Docker Desktop for Mac来执行该操作。
-
- Docker Desktop for Mac : https://docs.docker.com/docker-for-mac/install/
Docker Desktop for Windows: https://docs.docker.com/docker-for-windows/install/
Linux: https://docs.docker.com/engine/install/
最终
这次整理了从“Docker是什么?”到安装的过程。虽然内容有些枯燥,但学习具体操作将在接下来进行,我相信这将成为学习的重要部分,必须经历。(希望如此。)
那么我们进入下一部分,第二部分。