俺人〜OREGIN〜俺、バカだから人工知能に代わりに頑張ってもらうまでのお話

俺って、おバカさんなので、とっても優秀な人工知能を作って代わりに頑張ってもらうことにしました。世界の端っこでおバカな俺が夢の達成に向けてチマチマ頑張る、そんな小さなお話です。現在はG検定、E資格に合格し、KaggleやProbSpaceのコンペに参画しながら、Pythonや機械学習、統計学、Dockerなどの勉強中です。学習したことをブログにアウトプットすることで、自分の身に着けていきたいと思います。まだまだ道半ばですが、お時間がありましたら見て行ってください。

Dockerでコンテナを操作する(米国AI開発者がゼロから教えるDocker講座)

今回は、DockerでUbuntuのコンテナを起動し、ホストに戻ったり、再度コンテナにもどったりする、コンテナの操作方法を学習しました。

かめ@usdatascientistさんの「米国AI開発者がゼロから教えるDocker講座」をUdemyで受講しながら進めています。

とても分かりやすく解説いただけますし、ハンズオン形式で講座が進むので、まさに「手で覚える」ことができるので、おすすめです!

px.a8.net

 

今回は、セクション4の「Dockerを使ってみる。」のうち、Ubuntuの環境構築について受講しました。

Dockerのインストールについては、以下もご参照ください。

oregin-ai.hatenablog.com

DockerでUbuntuを使ってみる

1.UbuntuのDocker imageをrunする

まずは、UbuntuのDocker imageをrunしてコンテナを立ち上げます。

また、runする際に、シェル(bash)を実行できるようにします。

docker run -it ubuntu bash

UbuntuのDocker imageが、ダウンロード(Pull)されていない場合は、以下の通り、docker pullも合わせて実行されてダウンロード後、コンテナが起動します。

f:id:kanriyou_h004:20200628172130p:plain

図1.Ubuntuのコンテナを立ち上げてbashを起動する

前回の、’hello-world’とは、異なりbashを起動しているので、bashのプロンプトが表示されます。

「Pull complete」の右に表示されているランダムな英数字は、「image layer」というものを表していて、今回のDocker imageが4層のimage layerの層で構成されていることになります。

また、プロンプトの右に表示されているランダムな英数字(726e0cde1ac2)は、上記の4層に、今回、さらに上乗せするimage layerを表しています。

コンテナ上で作業を行うと、この上乗せしたimage layerを更新していくことになります。

2.Ubuntuのコンテナを更新する

 今度は、先ほどのUbuntuのコンテナをに変更を加えて、新しいコンテナを作ります。

まずは、コンテナに変更を加えます。

具体的にはtouchコマンドを使って「text.txt」というファイルを作成するという変更を加えます。

ファイルを作成したらlsコマンドでファイルが作成されていることを確認します。

touch text.txt

ls

f:id:kanriyou_h004:20200628174719p:plain

図2.コンテナに変更を加える(text.txtファイルを作成する)

次に、exitコマンドを使って、コンテナを終了し、ホストに戻ります。

exit

コンテナを終了すると、ホストのコマンドプロンプトに戻ってきます。

f:id:kanriyou_h004:20200628175117p:plain

図3.コンテナを終了し、ホストに戻る

ホストに戻ってきたらdocker psコマンドで、Ubuntuのコンテナを確認することができます。注意点としては、すでに終了させているので、-aオプションを付けて確認する必要がある点です。

docker ps -a

コマンドを実行すると、コンテナの状態が確認できます。

f:id:kanriyou_h004:20200628175802p:plain

図4.docker ps -aの実行

3.コンテナを再度起動する

先ほど終了させたUbuntuのコンテナを再度起動するためには、docker restartコマンドを実行します。再度起動するコンテナを指定するためには、docker ps -a コマンドで確認した「CONTAINER ID」を使います。

CONTAINER IDは、[726e0cde1ac2]だったので、以下の通り実行します。

docker restart 726e0cde1ac2

f:id:kanriyou_h004:20200628182748p:plain

図5.docker restartの実行

また、docker execコマンドを実行することで、立ち上げたコンテナのコマンドプロンプトに入れます。

docker exec -it 726e0cde1ac2 bash

f:id:kanriyou_h004:20200628183040p:plain

図6.docker execの実行

これで、先ほどの、Ubuntuのコンテナに戻ってきました。

lsコマンドを実行すると、作成した「text.txt」が作成されていることが確認できます。

ls

f:id:kanriyou_h004:20200628183419p:plain

図7.text.txtがあることの確認

最後にdetach(Ctrlキー+p+q)で、コンテナからホストに戻ります。

f:id:kanriyou_h004:20200628183248p:plain

図8.detach(Ctrlキー+p+q)でホストに戻る

ホストに戻ったあと、docker ps -aで、状態を確認します。

f:id:kanriyou_h004:20200628184442p:plain

f:id:kanriyou_h004:20200628184316p:plain

図9.コンテナの状態の確認

exitコマンドでホストに戻った時と異なり、「STATUS」が、「Exited」にならず「Up」のままです。
また、exitコマンドと異なり、再度起動するためにdocker restartの実行が必要なく、docker attachコマンドを実行するだけで再度プロンプトに入れます。

docker attach 726e0cde1ac2

f:id:kanriyou_h004:20200628185211p:plain

図10.docker attachで再度起動

今回は、Dockerのコンテナを起動し、コンテナを更新後ホストに戻ったり、再度コンテナを起動したりできるようになりました。

また、exitとdetachの違いも学習することができました。

 

今回受講している「米国AI開発者がゼロから教えるDocker講座」では、もっと詳しくわかりやすくご説明いただけているので、ほんとうに良い勉強になります。

今後も、継続して受講して、Dockerを使いこなせるようになりたいと思います! 

px.a8.net

 

 【過去記事】

2019年8月31日(土)にE資格を受験して、合格しました!

E資格対策として勉強の進め方や、参考書などをまとめました。

これから受験される方がいらっしゃいましたらご参考まで。

oregin-ai.hatenablog.com 

 

 2019年3月9日(土)にG検定を受験し、見事合格できました!

受験の体験記や勉強法などを別のブログにまとめました。

これから受験される方がいらっしゃいましたらご参考まで。

g-kentei.hatenablog.com

 【E資格対策に使った参考書】

 

 f:id:kanriyou_h004:20200628190331j:plain