Contents
- 前回の記事
- Docker for Windowsのダウンロード・インストール
- Hyper-Vの有効化
- (おまけ)Docker起動時によくあるエラー
- Docker for Windows – Requires log out
- ユーザー設定変数 “ErrorActionPreference” または共通パラメーターが Stop に設定されている
- The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect.
- the docker daemon is not running.
- no matching manifest for windows/amd64 10.0.18362 in the manifest list entries.
- Dockerで仮想環境の構築(コンテナ作成)
- Dockerhubからコンテナを取得
- コンテナの確認
- 仮想環境から離脱する
- ・参考資料
前回の記事
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のインストーラーをダウンロードします
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というエラーメッセージが出ている場合も再起動すれば解消されます。
ユーザー設定変数 “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は起動するごとに変わります。
・参考資料
コメント