【Windows10】Dockerの環境構築を分かりやすく解説する<後半>

前回の記事

Docker for Windowsのダウンロード・インストール

まずWindowsでDockerを使用するためには、Hyper-Vが必要であるため、Hyper-VがインストールできないWindows10 homeではDockerを使用することができません。

Hyper-Vの有効化

Docker for WindowsはHyper-Vを利用します。無効となっている場合は有効にします。
コントロールパネルの[プログラム]⇒[Windowsの機能の有効化または無効化]から「Hyper-V」にチェックを付けます。
※設定を有効化するにはOSの再起動が必要です。

Hyper-Vを有効化できたら、次は以下のサイトからDocker for Windowsのインストーラーをダウンロードします

https://hub.docker.com/

Dockerのインストーラーを落とすためにはユーザー登録が必要なので、適当なメアドとパスワードでユーザー登録してください

そして、インストーラーをダウンロードしてDockerのインストールが完了したら。PCを再起動してください。

再起動してDockerを起動すると、タスクバーにDockerのクジラのアイコンを表示されていて「Docker is running」と表示されていればDockerのインストール後の起動は完了です。

起動確認ができたら、クジラのアイコンを右クリック⇒「sign ㏌」で、Dockerhubに登録したIDとパスワードを入力してください。

(おまけ)Docker起動時によくあるエラー

Docker for Windows – Requires log out

Docker for Windows – Requires log outというエラーメッセージが出ている場合も再起動すれば解消されます。

f:id:oruka199665:20200106112831p:plain

ユーザー設定変数 “ErrorActionPreference” または共通パラメーターが Stop に設定されている

Unable to stop – ユーザー設定変数 “ErrorActionPreference” または共通パラメーターが Stop に設定されているため、実行中のコマンドが停止しました。モジュール ディレクトリに有効なモジュール ファイルが見つからなかったため、指定されたモジュール ‘Hyper-V’ は読み込まれませんでした。

ESETなどのセキュリティソフトが邪魔している可能性アリ、セキュリティソフトを無効化してDockerを再起動すると解消される場合があります。

The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect.

hyper-Vが有効化が完了していないのが原因、CPUがIntel系だとBIOSを起動(PC起動中にF10などでアクセスできます)してBIOSの「Secirity」または「Advanced」(システムのバージョン等で場所が違います)から「仮想化テクノロジー (VTx)」を有効化する必要があります

the docker daemon is not running.

タスクバーに起動しているdockerを右クリックして「Switch to windows container」

に押すと解消されることがあります。他にもWSL系などで起動しているのが原因で起こることもあるみたいです。

https://qiita.com/Y-Kanoh/items/180e73c47970ea9bf5bc

no matching manifest for windows/amd64 10.0.18362 in the manifest list entries.

dockerのアイコンを右クリック⇒setting⇒Demon⇒basicをadvancedに変更

"experimental": true を定義して、 Apply

https://qiita.com/yuta_vamdemic/items/cf3eb8182a63a303c4f7

Dockerで仮想環境の構築(コンテナ作成)

いよいよDocker上で仮想環境を構築していきます。Dockerでは仮想環境のことを「コンテナ」といいます。

試し、Linuxの派生OSで最近人気のubuntuの仮想環境を構築してみます。Dockerでの環境構築はbash上で以下のコマンドを実行するだけです。

Dockerhubからコンテナを取得

$docker pull ubuntu

~
Status: Image is up to date for ubuntu:latest
docker.io/library/ubuntu:latest

コンテナの確認

Dockerに作成した環境は以下のコマンドを叩いて確認できます。

# Dockerの環境を確認する
$ docker images

↓みたいな結果になっていれば成功です。

REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 549b9b86cb8d 2 weeks ago 64.2MB
hello-world latest fce289e99eb9 12 months ago 1.84kB

コンテナが取得できたらそれを起動してみます。

# コンテナを起動
$docker run -it ubuntu bash

the input device is not a TTY.
If you are using mintty, try prefixing the command with ‘winpty’と出た場合はエラーメッセージの通り。先頭にwinptyをつければエラーとならずにコンテナに入ることができる。

# コンテナを起動
$ winpty docker run -it ubuntu bash


$ winpty docker exec -it my-container bash
$bash-4.2#

実行すればわかりますが、VirtualBOXなどと比較して環境構築(コンテナ作成)がとにかく早くて感動します。これはDockerが流行るのも納得って感じです。

ちなみにこれはDocker HubというGithubのDocker版から ubuntu の仮想環境をpull(引っ張る)しています。ほかにもDocker Hubには、CentOSや有志の作成した開発環境のコンテナがたくさんアップロードされています。

こういった点から複数人での開発などではDockerを使用することで開発環境の統一・管理が容易に行えるため、近頃Dockerは注目され始めています。

仮想環境から離脱する

コマンドプロンプト上からアクセスしているDockerのコンテナの仮想環境から抜ける方法は2つあります。

  • exit→ コンテナを停止して仮想環境から抜ける
  • Ctrを押しながらpとqを順番に押す→コンテナを起動したまま環境から抜ける

ここでは後述のため、「Ctrを押しながらpとqを順番に押す」方法でコンテナを起動したまま仮想環境から抜けます。root@~から$に戻っていれば成功です。

コンテナの稼働状況はdocker psコマンドで確認できます。

# コンテナの稼働状況を確認する
$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3ec6a35e909e ubuntu “/bin/bash” 26 seconds ago Up 24 seconds hungry_khayyam

STATUSがUPになっているのが確認できます。

先ほどdettachしたubuntuコンテナに再度ログインするには、docker attach <CONTAINER IDまたはNAME>を実行します。

# コンテナIDからコンテナを起動する
$ docker attach 3ec6a35e909e

CONTAINER IDは起動するごとに変わります。

参考資料

Dockerコンテナの作成、起動〜停止まで - Qiita
今回はDocker Hubからイメージを取得し、コンテナを作成した後に起動/停止といった一連の流れを行います。 1.イメージの確認 docker imagesコマンドを実行すると、Docker Machineに保存されているイメ...
【入門】はじめての Docker Desktop for Windows のインストールと CentOS の仮想環境構築のセットアップ - Qiita
【入門】はじめての Docker Desktop for Windows のインストールと CentOS の仮想環境構築のセットアップ 最近では、Linuxの環境を利用したいときに 無償の Docker Desktop (for...
Git for Windowsでdocker execをwinptyなしで実行する - Qiita
Docker for Windows + Git for Windows環境で、dockerコンテナに入るために、docker execコマンドを実行すると、以下のエラーとなった。 $ docker exec -it my-cont...

ブログ運営者

・関連記事







プログラミングの独学はとても難しい


プログラミングは小学校の義務教育にも導入され始めており、これから社会人として生きていく上でプログラミングはもはや出来て当たり前、出来なれば論外というエクセルレベルの必須スキルになりつつあります。そしてそういう話を聞いて参考書なりを購入して独学でプログラミング勉強しようと思っている人も少なくないでしょう。しかしプログラミングを独学で勉強し始めようと思うものの



・「分からない箇所で詰まって挫折してしまった」

・「勉強する時間が足りない」

・「ネットの記事だと情報が断片的でよくわからない」

・「コードのエラーの原因が分からない」



という壁にぶち当たって、プログラミングの勉強を止めてしまう方が少なくありません。独学でプログラミングを勉強してる時間のほとんどはつまづいている時間です。実際僕も最初のころ独学でプログラミングを勉強していた頃はエラーの原因が分からず丸1日を不意にしてしまった・・・そんな苦い経験がありました。それで僕は一度はプログラミングの学習を諦めてしまいましたが、就活で現実を知る中で



「プログラミングを勉強して、いずれフリーランスとして自由な生き方がしたい」

「エンジニアとして若いうちから高収入を得たい」



という強い気持ちから一念発起して「侍エンジニアのwebサービスコース」に申し込み、プロのエンジニアの方に対面でマンツーマンでPythonによるWebサービス作り方とWeb技術の基本を教えてもらい、ようやくプログラミングが理解でき、今ではエンジニアとしてそこそこの暮らしができるようになりました。





侍エンジニアでは、とりあえずプログラミングやインターネットの基本を知っておきたい人から、HTML・cssなどでWebサイトやWebアプリを作ってみたい人やPythonを勉強してデータサイエンティストやAIエンジニアになりたい人まで幅広いニーズに応えた様々なコースが用意されています。



IT業界と言ってもエンジニアの仕事はプログラミング言語次第でサーバーから機械学習・ディープラーニングまで多種多様ですし、侍エンジニアの無料レッスン(カウンセリング)を受けてみて、自分のやりたいITの仕事は何なのか?を見つけるのがエンジニアへの第一歩になります。ちなみに今侍エンジニアの無料レッスンを受けると1000円分のAmazonギフト券がもらえるので、試しに受けてみるだけもお得です。


自分は半端に独学やオンラインスクールで勉強して金と時間を無駄にするくらいなら、リアルのプログラミングスクールに通ってしっかりプログラミングを勉強した方がいいと思います。ちなみに今、侍エンジニアに申し込むと、25歳以下の学生の方であれば、受講料が20%OFFになるので超お得です。


そして、プログラミングは大勢で授業を受けたり漫然とオンライン学習をするよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶよりも絶対にモノになります。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする