Skip to content

Commit

Permalink
Merge pull request #9 from remkohdev/master
Browse files Browse the repository at this point in the history
mdlint fixes, add github link to credits, moved multilanguage support and pdf
  • Loading branch information
jzaccone authored Apr 21, 2020
2 parents 1ff0ae4 + 4a0f36b commit 2fa14dd
Show file tree
Hide file tree
Showing 25 changed files with 857 additions and 785 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ DerivedData/
.venv
node_modules
_book
package-lock.json
mdl-results.md

## Various settings
*.pbxuser
Expand Down
1 change: 1 addition & 0 deletions .ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pdfs/
3 changes: 2 additions & 1 deletion .markdownlint.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"line-length": false
"comment": "MD013: Line length too large",
"line-length": false
}
1 change: 1 addition & 0 deletions .markdownlintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
languages/ja/
12 changes: 6 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
matrix:
include:
- language: node_js
node_js: 10
script:
- npm install markdownlint-cli
- markdownlint --config .markdownlint.json --ignore workshop/SUMMARY.md --ignore workshop/README.md workshop
include:
- language: node_js
node_js: 10
script:
- npm install markdownlint-cli
- markdownlint --config .markdownlint.json --ignore workshop/SUMMARY.md --ignore workshop/README.md workshop
46 changes: 37 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Docker Workshop
# Docker
Series of labs and instructions to introduce you to containers and Docker. Learn to run a container, inspect a container and understand the isolation of processes, create a Dockerfile, build an image from a Dockerfile and understand layers, tag and push images to a registry, scale and update containers, and more.

To view the Docker workshop online, go to:
* <https://ibm-developer.gitbook.io/docker/>.
Expand All @@ -8,19 +9,46 @@ To view the Docker workshop in Github, go to:

This repository has the following structure:
```ini
- pdfs (presentations)
- translations (language localization files)
- workshop (workshop labs)
|_ .gitbook (images)
|_ <folder-n> (workshop labs)
|_README.md (steps for labs in Markdown)
|_ README.md (gitbook home page)
|_ SUMMARY.md (table of contents)
|_ <language> (localization support)
|_ <folder-n> (workshop labs)
|_README.md (steps for labs in Markdown)
|_ README.md (gitbook home page)
|_ SUMMARY.md (table of contents)
.gitbook.yaml (GitBook read-only instructions)
.travis.yaml (runs markdownlint by default)
README.md (GitHub.com README)
```

## Translations
## Markdown lint tool

Install the [Markdown lint tool](https://github.com/markdownlint/markdownlint),
```
$ npm install -g markdownlint-cli
```

To use markdownlint, run the following command,
```
$ markdownlint workshop -c ".markdownlint.json" -o mdl-results.md
```

## Build Gitbook

Install the [gitbook-cli](https://github.com/GitbookIO/gitbook-cli),
```
$ npm install -g gitbook-cli
```

To build the Gitbook files into the `_book` sub-directory with the `gitbook-cli`, run the following command,
```
$ gitbook build ./workshop
```

Serve the Gitbook files locally with the following command,
```
$ gitbook serve ./workshop
```



* [Japanese](workshop/README-ja.md) - Thanks to [Toshio Yamashita](https://github.com/developerWorksJP)
Binary file added languages/.gitbook/images/lab1_step2_mongo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added languages/.gitbook/images/lab1_step2_nginx.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions languages/LANGS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Languages

* [English](en)
* [日本語 (にほんご)](ja)

<!--
* [Português](pt-br)
* [Italiano](it)
* [العربية](ar)
* [azərbaycan dili](az)
* [беларуская мова](be)
* [català](ca)
* [čeština, český jazyk](cs)
* [Esperanto](eo)
* [suomi](fi)
* [हिन्दी, हिंदी](hi)
* [Magyar](hu)
* [Bahasa Indonesia](id)
* [日本語 (にほんご)](ja)
* [한국어, 조선어](ko)
* [македонски јазик](mk)
* [Nederlands](nl)
* [język polski](pl)
* [limba română](ro)
* [русский язык](ru)
* [српски језик](sr)
* [ไทย](th)
* [Türkçe](tr)
* [Tiếng Việt](vi)
* [漢語](zh-tw)
* [中文](zh)
-->
34 changes: 34 additions & 0 deletions languages/ja/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Docker ハンズオン

Docker を使用して以下のことを学びます。

- Docker コマンドの基本操作
- Docker Hub と公式イメージの利用
- DockerFile を使用した Docker Image の作成、Docker Hub への push
- ユニオン・ファイル・システムとコピー・オン・ライト
- Docker swarm を利用したコンテナのデプロイ、オーケストレーション

## ハンズオン構成

Lab0-3の4つのハンズオンを準備しています。

Lab1-3 は基本的には独立した内容となっていますが、基本的には Lab1 から実施頂くことをオススメします。

## Agenda

| | |
| - | - |
| [Lab0](lab-0/README.md) | Docker をインストールする |
| [Lab1](lab-1/README.md) | 初めてのコンテナを実行する |
| [Lab2](lab-2/README.md) | カスタム Docker イメージを使用して付加価値を与える |
| [Lab3](lab-3/README.md) | オーケストレーション入門 |

- Docker をインストールする
- 初めてのコンテナを実行する
- Docker コマンドの基本操作
- Docker Hub と公式イメージの利用
- カスタム Docker イメージを使用して付加価値を与える
- DockerFileを使用したDocker Imageの作成、Docker Hubへのpush
- ユニオン・ファイル・システムとコピー・オン・ライト
- オーケストレーション入門
- Docker swarm を利用したコンテナのデプロイ、オーケストレーション。は Kubernetes でも同様なことができるため、Kubernetes のハンズオンを別途実施予定の場合は、スキップ可能です。
19 changes: 19 additions & 0 deletions languages/ja/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Summary

<!-- Rules of SUMMARY.md are here: https://docs.gitbook.com/integrations/github/content-configuration#summary -->
<!-- All headings MUST be THREE hashmarks (###) -->
<!-- Indented bullets (4 spaces) will make the first line be a section -->

### Getting Started

* [Pre-work](lab-0/README.md)

### Docker 101

* [Lab 1](lab-1/README.md)
* [Lab 2](lab-2/README.md)
* [Lab 3](lab-3/README.md)

### Resources

* [IBM Developer](https://developer.ibm.com)
8 changes: 4 additions & 4 deletions workshop/lab-0/README-ja.md → languages/ja/lab-0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,23 @@ Web での登録作業完了後、登録したメールアドレスにメール
> Dockerのインストール要件:
> https://docs.docker.com/install/#supported-platforms より利用するOSをクリックし、確認できます(英語)。インストールできない場合は 下記オプションの [Play with Docker](http://play-with-docker.com) をご使用ください。
# ステップ 1: Docker をインストールする
## ステップ 1: Docker をインストールする

1. https://hub.docker.com/`Sign in` をクリックし、サインインします(Docker IDとパスワードが必要です)。

2. `[Get Started with Docker Desktop]` のボタンをクリックして、モジュールをダウンロードし、インストールします。

> Docker には 2 つのインストール・バージョンが用意されています。「有償」バージョンは Docker Enterprise Edition (Docker EE)、「無償」バージョンは Docker Community Edition (Docker CE) です。このコースでは、Docker Community Edition で提供される無償の機能のみを使用します。
# **オプション:** Play with Docker を使用する
## **オプション:** Play with Docker を使用する
Docker をインストールしたくない場合は、代わりの方法として [Play with Docker](http://play-with-docker.com) を使用できます。Play with Docker は、Docker がインストールされているターミナルを、ブラウザーから直接実行できる Web サイトです。

このコースのすべてのラボは Play with Docker 上で実行できますが、このコースを完了した後も Docker を学べるよう、ローカル・ホストに Docker をインストールすることをお勧めします。

Play with Docker を使用する場合は、ブラウザー内で http://play-with-docker.com にアクセスします。Docker Hub にサインインしていない場合は `Login` ボタンが表示されます。`Login` ボタンをクリックしてDocker IDでサインインし、`Start` ボタンでアクセスできることを確認しておいてください(既にサインイン済みの場合は最初から `Start` ボタンが表示されます)。

# まとめ
## まとめ

Docker をインストールするか、http://play-with-docker.com の使い方を把握した後は、このコースの残りのラボに取り組んでください。

[Lab1](lab-1/README-ja.md)を進めてください。
[Lab1](../lab-1/README.md)を進めてください。
27 changes: 11 additions & 16 deletions workshop/lab-1/README-ja.md → languages/ja/lab-1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Lab0 を完了して、Docker がインストール済みになっているか

> http://play-with-docker.com を使用する場合は, `Login`,`Start`をクリック後、`+ ADD NEW INSTANCE`をクリックしてインスタンスを作成してから開始してください。
# ステップ 1: 初めてのコンテナを実行する
## ステップ 1: 初めてのコンテナを実行する

Docker CLI を使用して、最初のコンテナを実行します。

Expand Down Expand Up @@ -50,9 +50,8 @@ Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
KiB Mem : 2046768 total, 173308 free, 117248 used, 1756212 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used.1548356 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 36636 3072 2640 R 0.3 0.2 0:00.04 top

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 36636 3072 2640 R 0.3 0.2 0:00.04 top
```

`top` は、システム上のプロセスをリソース使用率の順に出力する Linux ユーティリティーです。上記の出力には、プロセスとして `top` プロセス自体しか示されていません。ホストの他のプロセスがこのリストに示されていないのは、PID 名前空間で分離されているためです。
Expand Down Expand Up @@ -116,7 +115,7 @@ $ ps -ef

4. `top` プロセスを実行中のコンテナをクリーンアップするために、`<ctrl>-c` と入力します。

## 技術上の詳細
### 技術上の詳細

PID は、システム・リソースを分離するために使用できる Linux 名前空間の 1 つに過ぎません。他にも次の Linux 名前空間を使用できます。
- MNT - 他の名前空間に影響することなく、ディレクトリーをマウントまたはアンマウントします。
Expand All @@ -131,8 +130,7 @@ PID は、システム・リソースを分離するために使用できる Lin

Linux サブシステムを使用して Windows 上で Linux コンテナを実行できるだけでなく、Windows OS に基づくコンテナ・プリミティブが作成されたことから、ネイティブ Windows コンテナを実行することも可能になっています。ネイティブ Windows コンテナは、Windows 10 または Windows Server 2016 以降で実行できます。


# ステップ 2: 複数のコンテナを実行する
## ステップ 2: 複数のコンテナを実行する

1. Docker Hub サイト内を探索してみましょう。

Expand Down Expand Up @@ -172,7 +170,7 @@ Nginx は軽量の Web サーバーです。Nginx サーバーには、ローカ

3. Http://localhost:8080 上で Nginx サーバーにアクセスします。Play with Docker を使用している場合は、ページの上部にある `8080` リンクを探してください。

![](../.gitbook/images/lab1_step2_nginx.png)
![](../../.gitbook/images/lab1_step2_nginx.png)

4. Mongo DB サーバーを実行します。

Expand Down Expand Up @@ -201,7 +199,7 @@ d8f614a4969fb1229f538e171850512f10f490cb1a96fca27e4aa89ac082eba5

5. http://localhost:8081 にアクセスして、Mongo からの出力を確認します。Play with Docker を使用している場合は、ページの上部にある `8080` リンクを探してください。

![](../.gitbook/images/lab1_step2_mongo.png)
![](../../.gitbook/images/lab1_step2_mongo.png)

6. `docker container ls` を使用して、実行中のコンテナを確認します。

Expand All @@ -217,7 +215,7 @@ Nginx Web サーバー・コンテナと MongoDB コンテナがホスト上で

上記の出力には、コンテナのそれぞれに指定した「nginx」と「mongo」という名前の他に、Ubuntu コンテナに生成されたランダムな名前 (この例では「priceless_kepler」) が示されています。また、`--publish` フラグで指定したポート・マッピングも確認できます。これらの実行中のコンテナの詳細について調べるには、`docker container inspect [コンテナ ID]` コマンドを使用します。

## 技術上の詳細
### 技術上の詳細

お気付きかもしれませんが、Mongo コンテナは `docker-entrypoint` というコマンドを実行しています。これは、コンテナの起動時に実行される実行可能ファイルの名前です。Mongo イメージを使用するには、DB プロセスを開始する前にあらかじめ構成を行う必要があります。スクリプトの正確な処理内容を確認するには、[github](https://github.com/docker-library/mongo/blob/master/3.4/docker-entrypoint.sh) 上に置かれているスクリプトを調べてください。一般に、github ソースへのリンクは、Docker Hub Web サイト上のイメージの説明ページで見つかります。

Expand All @@ -229,14 +227,12 @@ Nginx Web サーバー・コンテナと MongoDB コンテナがホスト上で

Docker Store のイメージをそのまま実行すると便利な場合もありますが、カスタム・イメージを作成するほうが役立ちます。カスタム・イメージの出発点としては、公式イメージを参照できます。独自のカスタム・イメージを作成する方法については、ラボ 2 で詳しく説明します。

# ステップ 3: クリーンアップ
## ステップ 3: クリーンアップ

このラボの手順に従うと、最終的にはホスト上で一連のコンテナが実行されることになります。これらのコンテナをクリーンアップしましょう。


1. まず、`docker container ls` を使用して、実行中のコンテナのリストを取得します。


```sh
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Expand All @@ -254,7 +250,6 @@ af5

****: 参照する必要がある ID は、一意になるだけの桁数があれば十分です。ほとんどの場合は、3 桁の数字があれば一意の ID になります。


2. 停止したコンテナを削除します。

システムをクリーンアップするには、`docker system prune` コマンドが大いに重宝します。このコマンドは、停止されているコンテナ、未使用のボリュームとネットワーク、孤立したイメージのすべてを削除します。
Expand All @@ -275,7 +270,7 @@ Deleted Containers:
Total reclaimed space: 12B
```

# まとめ
## まとめ

このラボでは、Ubuntu、Nginx、MongoDB の各コンテナを初めて作成しました。

Expand All @@ -285,4 +280,4 @@ Total reclaimed space: 12B
- 独自のイメージを開発する際は、まだ検証されていない Docker Hub のコンテンツを使用しないようにしてください。未検証のイメージにはセキュリティー上の脆弱性が伴うことや、悪意のあるソフトウェアである恐れさえあります。
- コンテナ内でプロセスを実行するために必要なものはすべて、そのコンテナに含まれます。したがって、追加の依存関係をホストに直接インストールする必要は一切ありません。

次のハンズオンはこちら [Lab2](lab-2/README-ja.md) です。
次のハンズオンはこちら [Lab2](../lab-2/README.md) です。
Loading

0 comments on commit 2fa14dd

Please sign in to comment.