yshr10ic’s Blog

備忘録

【Udemy受講メモ】米国AI開発者がゼロから教えるDocker講座

こんにちは、@yshr10icです。

Twitterでフォローさせて頂いているかめさん(@usdatascientist)がUdemyでDockerの入門講座を公開されていたので、受講してみました! 非常に良い講座だったので、受講メモとして残しておきたいと思います。

www.udemy.com

目次

  1. おすすめポイント
  2. 講座について
  3. まとめ

おすすめポイント

まず最初に、本講座を受講してみておすすめしたい!と思ったポイントを紹介したいと思います。

  • 基礎から順序良く
  • 重要なことは何度も繰り返す
  • 今何をやっているかをスライドで説明
  • データサイエンスやWEBアプリ開発で使える方法についても紹介
    • 応用編では、AWSのEC2へのデプロイやTravis CIを使ったCI環境の構築なども体験可能
  • 聞き取りやすい声(私は2倍速で聞いていましたが、それでも聞き取りやすかったです)

講座について

次に実際の講座内容に関してのメモです。

準備

Linuxの基礎、Dockerのインストール方法を勉強します。 Linuxの基礎では、「cd」や「ls」などの基本的な操作を確認します。 すでにここら辺の知識のある方は飛ばしても問題ないと思います。

Docker基礎

Dockerをとりあえず触ってみる

Dockerイメージをプルして、コンテナを起動してみたり、 Dockerイメージを作成して、Docker Hubにプッシュしたりします。 また、docker runの動作についてより詳細に確認します。

基本的なDockerのコマンドやdocker runで良く使用されるオプションの意味や動作について理解することができます。

Dockerfileを使用した実行

Dockerfileの基本的な使い方を勉強します。 RUNCMDなどの命令がどのように動くのかを理解することができます。

個人的に、本講座で一番勉強になったのが、Dockerfileの作り方だと思っています。基本的な使い方を説明した後に、キャッシュやイメージレイヤーの説明があり、実際にDockerfileを書くにはどのような手順を踏んで行けば良いのかを理解することができました。

本講座を受講した後に、個人的にPythonの開発環境をDockerで作ってみようと思い、python dockerfileで検索してみたのですが、以下のようなDockerfileがヒットしました。

...
RUN apt-get update
RUN apt-get install -y xxx
RUN apt-get install -y yyy
...

今までは、ヒットした結果をコピペして使っていたと思いますが、今では、イメージレイヤーが作られてしまうから、&&で繋げた方が良いんだなーということが分かるようになりました。

Docker応用

応用編では、データサイエンス用の環境構築とWebアプリ開発環境の構築を行います。

データサイエンス用の環境構築では、まずローカルでJupyter Labが動く環境を構築します。次にAWSのEC2でインスタンスを作成し、EC2上でJupyter Labが動くようにします。 最後に、AWSGPUインスタンスを利用して、GPU環境でのDockerfileの作成方法を勉強します。

次にWebアプリ開発環境の構築では、RailsのWebアプリを作成します。 ここでは、Docker composeを使ってRailsPostgreSQLの2つのコンテナを作成する方法を学びます。 そして、GitHubソースコードをプッシュしたら、Travis CIがテストを実行し、問題なければHerokuにデプロイする、ということまでできるようになります。

Dockerの講座なので、AWSTravis CIなどについてはあまり詳しく説明されていませんが、どういった手順で、どんなサービスが必要なのか、ということが理解できるようになっています。

まとめ

本講座のおかげでやっとDockerに入門できたかな、と思っています。 今後は自分に必要な環境を作ってみたり、前に挫折した以下の書籍などを通じて、もっとDockerを使いこなせるようになりたいですね!

Docker/Kubernetes 実践コンテナ開発入門

Docker/Kubernetes 実践コンテナ開発入門