This repository will guide you how to setup docker command to be used directly from bash using Windows Subsystem for Linux (WSL1).
- VirtualBox installed in Windows
- Vagrant installed in Windows
- Plugin
vbguestinstalled in vagrant:vagrant plugin install vagrant-vbguest(automatically installed via the.vagrantpluginsfile)
Install docker client and docker-compose cli plugin by running bash script install_standalone_docker_cli.sh:
Next is to append configuration to ~/.bashrc for docker to use TCP instead of file:
echo 'export DOCKER_HOST=tcp://127.0.0.1:2375' >> ~/.bashrc
source ~/.bashrcNote! Since 18.09 it is also possible to access the Docker daemon via SSH:
echo 'export DOCKER_HOST=ssh://vagrant@192.168.56.56' >> ~/.bashrc
source ~/.bashrcNow when this is done the dockerclient is ready to go. It is now time to
setup the VM which hosts the Docker daemon.
This guide assume you have Vagrant installed in Windows and therefore it is
necessary for add an alias to ~/.bash_aliases to make Linux use the Vagrant in Windows:
echo "alias vagrant='vagrant.exe'" >> ~/.bash_aliasesTime to create the VM which hosts the Docker daemon and you do this by just making sure your current working directory is in the root of this repository and run the following:
Important! Ensure that IP range 192.168.56.1-192.168.56.255 is not used and handled by any DHCP in your network because
this is used for the host-only network adapter. If this IP range is in use please look into the Advanced section how
to change the configuration.
vagrant upAfter this point the VM is ready and the Docker daemon is started. Test the docker client by running the following command:
docker infoAfter the you have setup everything and run the vagrant up once then from that point you can start and stop the box by
explicitly specifying the ID. This ID can be found using the command vagrant global-status. Using the ID will allow you
to start, stop and reprovision the box from any location (you do not need to go to the directory of the Vagrantfile).
If you would like to override any configuration defined in default-config.yml then this is possible by adding a new
file called user-config.yml in this directory (will be ignored by git). The easiest way to start modifying the configuration is to look
at default-config.yml and just create the user-config.yml with only the variables you want to override.
For example if you want to disable the host-only network adapter and only use NAT, then the user-config.yml can look like this:
vagrant_use_host_only: 0You can so that the Vagrant box will use a proxy. Example below show you how to do this in your user-config.yml:
vagrant_proxy_enabled: trueTo set proxy use the environment variables which vagrant-proxyconf looks at. Read official documentation: vagrant-proxy
IMPORTANT! In Windows 10 vagrant-proxyconf plugin will work with version 1.5.2, 2.0.1 or later.
If you want some else than just a simple Docker CE installation then you can override ansible_playbook to point to a different playbook in a sub directory of
this repo, suggest creating directory ansible-overrides which is ignored by .gitignore and put your playbook there. You can also override the Ansible galaxy
requirements file by setting variable ansible_requirements.