Docker实操讲座

docker.png

新闻背景

为了让您亲身体验Docker这一认知度越来越高的技术,我会简要介绍其概要,并通过实际操作的Hands-On形式进行演示。鉴于关于Docker本身的解释文章已经很多了,所以我会省略相关描述!!

Docker简介

Docker是什么?

Docker是一种实现”容器化”的虚拟化技术之一。

虚拟化技术?

在虚拟化技术中,有三种类型。

    • ホスト型

 

    • ハイパーバイザ型(TEOSはコレ)

 

    コンテナ型

这里有一篇详细解释的图解文章。

Docker 的好处

    • コンテナを共有することで誰でも同じ環境を構築できる

 

    • OSが不要なのでホスト型より動作が軽い

 

    • 多くのコンテナイメージが提供されている

 

    ホスト型に比べてお手軽にセットアップできる

参考記事

【图解】理解Docker的整体概况 -前篇-
由于最近才入门Docker,因此将其简明地总结出来。

Dockerを動かしてみる

Docker Desktopのインストール

Docker公司提供了桌面版应用程序,使得用户可以在Windows和Mac等消费者设备上搭建Docker环境。

请下载并安装Mac版本的软件:
https://hub.docker.com/editions/community/docker-ce-desktop-mac
※请注意,下载需要Docker Hub账号,如果您未注册,请先进行注册。

由于下载了dmg文件,请进行安装。

Docker Desktopの起動

スクリーンショット 2019-04-04 10.04.26.png
スクリーンショット 2019-04-04 10.05.53.png
スクリーンショット 2019-04-04 10.07.50.png

确保Docker正在运行

为确认Docker Desktop是否正确启动,执行以下命令。

$ docker info
Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 2
Server Version: 18.09.2
...

如果Docker正确启动,它将输出启动的信息,但如果无法启动,将显示以下错误消息。

$ docker info
Error response from daemon: Bad response from Docker engine

启动Nginx

当确认成功启动Docker Engine后,立即尝试使用Docker Image来启动Nginx。
只需要执行以下命令,就可以轻松地启动Nginx。
如果不存在Docker Image,则会执行下载处理。

$ docker run --name hogehoge -d -p 8080:80 nginx

–name: 指定任意的镜像名称。
-d: 分离模式,可以在容器运行时在后台启动。(像守护进程一样的常驻程序使用)
-p 主机端口号:容器端口号:实际上,Web访问的端口号与容器的端口号是相关联的声明。

执行结果

スクリーンショット 2019-04-09 16.02.46.png

关掉Nginx

让我们尝试终止刚刚启动的Nginx。
由于使用了 -d 命令进行启动,因此控制台上没有任何显示。
为了确认Nginx进程已经启动,执行以下命令。

$ docker ps

执行结果

当执行后,通过显示状态为“UP”来确认它正在启动中。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
2feb4351fdb6        nginx               "nginx -g 'daemon of…"   2 minutes ago       Up About a minute   0.0.0.0:8080->80/tcp   hogehoge

次にプロセスを停止するためにコンテナ停止のコマンドを実行する

$ docker stop hogehoge
hogehoge

ここで再度プロセスを確認してみるとさきほど起動していたプロセスがなくなっていることがわかる

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES 

unixのプロセスと同様に-aオプションを用いて存在するプロセスを確認してみると、nginxのプロセスがきちんと停止していることが確認できる

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                               NAMES
2feb4351fdb6        nginx               "nginx -g 'daemon of…"   6 minutes ago       Exited (0) 2 minutes ago                                       hogehoge
スクリーンショット 2019-04-09 16.32.50.png

カスタムイメージを作成するには?

在前一步中,我們下載了 nginx 的 Docker Image,並且通過直接運行來確認它的啟動。
基本上,通過編輯這個容器內的資源,我們可以自定義 nginx,但是在這裡設定的信息僅限於此容器內使用,這就偏離了 Docker 的優點,即「通過共享容器可以讓任何人在相同的環境中構建」。
因此,我們可以使用 Dockerfile 來創建定制化的 Docker Image。

Dockerfile是什么?

公開されているDockerイメージに加えて必要なパッケージやアプリ、各種設定を含んだDockerイメージを自分で作成して使用するために記述する設定ファイルのこと

创建Dockerfile

下記記事のなかでDockerfileの作成からビルド、Docker Hubへの登録までの一連の流れが確認できるため割愛
Dockerfileを書いてみる

结束了

在Docker Hub上存在着各种不同的容器镜像,其中也有很多可以轻松启动的镜像,所以请务必在本地尝试各种试验。

有关使用Docker-compose实现多种组合环境等等的内容,我们可以在以后的某个机会再讨论。

bannerAds