Getting started with Windows Subsystem for Linux, Ubuntu and Docker

0

Starting with a vanilla Windows 10 environment, it took just a few simple steps to get going with Linux on my Windows machine in the Windows Subsystem for Linux (WSL). Note: this is not yet Version 2 of wsl which is currently in (limited) preview

  • install Ubuntu App from Windows App Store
  • enable Windows Linux Subsystem feature
  • run Ubuntu (in elevated mode – as Windows Admin)
    • create Linux user
    • update Ubuntu (optional)
  • do your Linux things
    • understand interaction between Linux and Windows file system
  • as an example: install and run Apache server (and access from web browser on Windows)

1. Download Ubuntu (or any other Linux distro) App from Windows App Store

image

2. Enable Windows Linux Subsystem feature

image

image

    3. run Ubuntu (in elevated mode – as Windows Admin)

    image

    You are prompted to create a Linux user.

    Update Ubuntu (optional)

    sudo apt upgrade


    4.do your Linux things

    I did the somewhat confusing act of creating a user called linux – hence the weird home directory

    image

    and yes, I used vi to edit file myfile.txt!

    5. understand interaction between Linux and Windows file system

      The Linux file system is mapped to the Windows file system - in the following way (as I learned from this thread)

      C:\Users\<Windows Username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\<Linux Username>

      6. Install Apache

      (see: https://www.how2shout.com/how-to/install-apache-on-windows-10-wsl-http-server.html)

      SNAGHTML122edfb4

      Start the Apache HTTPD service

      sudo service apache2 start

      In my case, the popup for Windows Defender Firewall appeared and the initial startup of Apache failed.

      image


      By pressing Allow Access and trying again, I got Apache to start:image

      Access the Apache web server from the Windows Browser (outside WSL – at http://127.0.0.1):

      SNAGHTML123132db

      Note on Docker:

      I have tried to get Docker running no WSL. However, the most recent version of Docker Community Edition that has been verified to run on Windows Subsystem Linux is 17.09.0 (see: https://medium.com/faun/docker-running-seamlessly-in-windows-subsystem-linux-6ef8412377aa) and I could not easily find that version of Docker CE – though I did not try very hard.

      Note 2: WSL is quite neatly separated from my regular Windows environment and in that sense is similar to a container or a VM. However, I can not run applications from or as a Docker Container – which is a bit of a shame.

      image

      About Author

      Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director and Oracle Developer Champion. Solution architect and developer on diverse areas including SQL, JavaScript, Kubernetes & Docker, Machine Learning, Java, SOA and microservices, events in various shapes and forms and many other things. Author of the Oracle Press book Oracle SOA Suite 12c Handbook. Frequent presenter on user groups and community events and conferences such as JavaOne, Oracle Code, CodeOne, NLJUG JFall and Oracle OpenWorld.

      Leave a Reply

      This site uses Akismet to reduce spam. Learn how your comment data is processed.