Ansibleを使って環境管理をしたいのですが、現在linux環境がない状態です。
そこでWindows上にDocker環境を構築してAnsibleを利用することにしました。
AnsibleもDockerも使ったことがなく、間違った点などもあるかもしれません。
参考
Docker について日本語のドキュメントがありましたので、基本的にそちらを参考にしています
http://docs.docker.jp/docker-for-windows/step_one.html
また、udemy「ゼロらはじめる Dockerによるアプリケーション実行環境構築」にて基礎的な部分の勉強をしました。
https://www.udemy.com/docker-k/
導入
動作環境
- Windows 10 Pro 64bit
- Intel Core i7-6700K
- Docker Engine Community 18.09.2
Windows での Docker 利用
windowsでは以下の二通りの方法があります。
エディションなどでできる/できないがあるので自身の環境に合わせて実施してください。
私はDockerDesktop(windows)を利用できる環境だったので、そちらにしました
-
Docker Desktop (Windows)
- 現在の公式推奨方式
- Hyper-Vでの仮想化
- Windows 10 Professional 64bit でないと利用できない
- 後述のDockerToolsに対し高速なはず
- これまではVirtualBoxとHyper-Vの共存ができなくて迷ったが、VirtualBox6.0から共存できるようになった
-
Docker Tools
- 旧方式
- VirtualBoxでの仮想化
手順
①Intel Virtualization Technology を有効にする
②Windows に Hyper-Vをインストールする
- Windowsの機能画面にて以下のようになっていれば、すでに設定済みです
- そうでなければ、公式ページを参考に有効化してくださいしてください
https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
③ Docker Desktop(Windows)をインストールする
- DockerHubから、インストーラをダウンロードします
ダウンロードにはDockerHubへのログインが必要なので、アカウントがない人は作成してください
https://hub.docker.com/editions/community/docker-ce-desktop-windows - ダウンロードしたインストーラを実行します。
特に複雑な手順はないので、言われるがままに進めれば大丈夫です
④docker version
コマンドで動作を確認します
初期設定
dockerhubへのログイン情報の設定
-
docker login
コマンドにて設定します
PS C:\Users\owner> docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: hogehoge
Password:
Login Succeeded
つまづいた点
DNSがうまくいっていない
- 下記のような形でうまく外部に出れていないよう
Step 3/3 : RUN apt-get update && apt-get install -y inetutils-ping
---> Running in f6ac8909c8ed
Err:1 http://deb.debian.org/debian stretch InRelease
Temporary failure resolving 'deb.debian.org'
Err:2 http://security.debian.org/debian-security stretch/updates InRelease
Temporary failure resolving 'security.debian.org'
Err:3 http://deb.debian.org/debian stretch-updates InRelease
Temporary failure resolving 'deb.debian.org'
Reading package lists...
W: Failed to fetch http://deb.debian.org/debian/dists/stretch/InRelease Temporary failure resolving 'deb.debian.org'
W: Failed to fetch http://security.debian.org/debian-security/dists/stretch/updates/InRelease Temporary failure resolving 'security.debian.org'
W: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/InRelease Temporary failure resolving 'deb.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
- DNS Serverを8.8.8.8に設定