LoginSignup
1
0

More than 3 years have passed since last update.

WindowsでDorcker環境をVirtualBoxを使って簡単に構築する

Posted at

WindowsでDorcker環境をVirtualBoxを使って簡単に構築する

Dockerが公開しているDocker Desktopの場合、Hyper-Vを使用しないとDocker環境をつくれません。
自分の場合、それでは不都合があるのでVirtualBoxを使用して構築していきます。

やりたいこと

  • 使うツール(テキストエディタ、Officeなど)は、基本的にWindows上で動作させたい。
  • 開発するアプリケーションは、Linux上で動作させるので実行はLinux上で行いたい。
  • アプリケーションは、Dockerコンテナで動作させたい。

前提条件

  1. ホストOS(Windows)
  2. VirtualBoxを予めインストールする
  3. Vagrantを予めインストールしておく
  4. Vagrantプラグインをインストールしておく
    • vagrant-vbguest

環境構築

  1. Ansibleを使って、Dockerホスト環境を作成する
  2. アプリケーションのソースをDockerコンテナに共有する

ディレクトリ構成

\DockerHost  Docker環境を作成するためのルートディレ鵜鳥
  \public
    \provision  AnsibleでDocker環境を作成するための設定ファイル群
      playbook.yml等
      :
  Vagrantfile  VagrantでVirtualBoxにLinux環境を作成する為のファイル

Vagrantfileの設定の説明

Ansible環境を作成する

Vagrantをprovisionオプションを付けて実行すると自動的にAnsibleの環境を準備します。

server.vm.provision に記載されている設定で、Ansibleをインストールし、Dockerの環境までを作成します。

ホストOSのディレクトリを共有

Vagrantのsynced_folderにホストOSのディレクトリを指定することで、簡単にVirtualBox上のLinuxと共有できます。

server.vm.synced_folderにホストOSと共有するディレクトリをします。

以下の例のserver.vm.synced_folderの3行は、3つのフォルダをvagrantのホームディレクトリのdevelopディレクトリに共有しているます。もちろんいくつ指定しても良いです。

"../app1"は、ホストOSのディレクトリを相対パス、絶対パスのいづれでも指定できます(これ重要)。

Vagrantfileの例

Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
    # docker-base
    config.vm.define "docker-base" do |server|
        server.vm.box = "ubuntu/bionic64"
        config.vm.network :public_network, :ip => "192.168.3.148", :netmask=>"255.255.255.0", :bridge => "Intel(R) 82583V Gigabit Network Connection"

        server.vm.synced_folder "./public", "/vagrant_public"
        # 開発アプリケーションのフォルダを共有する
        server.vm.synced_folder "../app1", "/home/vagrant/develop/app1"
        server.vm.synced_folder "c:/Users/hoge/develop//app2", "/home/vagrant/develop/app2"
        server.vm.hostname = "vm-docker"
        server.vm.provider "virtualbox" do |vb|
            vb.gui = false
            vb.memory = "2048"
            vb.name = "DockerBase"
        end
        # Andibleのインストール
        server.vm.provision "shell", inline: <<-SHELL
            sudo apt-get update
            sudo apt-get install -y software-properties-common
            sudo apt-add-repository ppa:ansible/ansible
            sudo apt-get update
            sudo apt-get install -y ansible
            cd /vagrant_public/provision/
            sudo ansible-playbook -i hosts playbook.yml --connection=local
        SHELL
    end
end

Docker環境を作成と実行をする(通常一回だけ)

Vagrantfileファイルがあるディレクトリで以下のコマンド実行します。

--provisionオプションを付けることで、server.vm.provisionで設定したコマンドが実行され、Docker環境が作成されます。

数分かかるのでエラーが出ていないか見ながら待ちましょう。

   vagrant up --provision

Docker環境を実行する(通常)

   vagrant up

Docker環境(Ansibleのplayabookの設定)構築

--provisionオプションを付けて実行すると以下のことが行われます。

  1. DokcerをインストールするOS(Ubuntu 18.04)の準備
    • OSの日本語化、タイムゾーンの設定
    • Vimのインストール
    • Gitのインストール
  2. Dokcer環境のインストール

Docker環境のパラメータ調整

変数説明

roles/docker/vars/main.yml

docker-composeのインストールバージョン

  • /roles/docker/vars/main.yml
    • docker_compose_version=1.24.0

設定ファイルの公開
dockerEnv

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0