Share folder di Docker untuk Windows yang menggunakan driver VMware Workstation

Ini merupakan kelanjutan dari artikel sebelumnya, Menggunakan Docker di Windows dengan VMware Workstation driver (tanpa Hyper-V).


Pada machine driver untuk VMware Workstation tidak terdapat opsi untuk menentukan shared folder seperti yang terlihat pada daftar opsi berikut: https://github.com/pecigonzalo/docker-machine-vmwareworkstation#options.

Secara default ia hanya akan menset folder home/user kita sebagai shared folder, misalkan C:\Users\<USER>.

Jika kita ingin menambahkan share folder lainnya, misalkan kita ingin share folder kita di drive lain (misal: D:\Shared) agar bisa diakses oleh Docker containers, berikut ini langkahnya:

  1. Buka Command Prompt (cmd.exe) dan jalankan perintah berikut:
    "C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" -gu docker -gp tcuser addSharedFolder "C:\Users\<USER>\.docker\machine\machines\dev\dev.vmx" shared D:\Shared
  2. Masuk ke docker machine kita dengan SSH:
    docker-machine ssh dev
  3. Jalankan dua perintah berikut ini di dalam docker machine:
    sudo mkdir /shared
    sudo mount --bind /mnt/hgfs/shared /shared
  4. Kini kita telah berhasil membuat share folder. Harap dicatat bahwa share folder ini akan hilang saat kita me-restart docker machine, untuk membuatnya permanent, kita bisa meng-edit file /mnt/sda1/var/lib/boot2docker/profile dan menambahkan perintah yang sama di bawahnya:
    sudo mkdir /shared
    sudo mount --bind /mnt/hgfs/shared /shared
  5. Jika sudah, coba anda tes dengan me-restart docker machine tersebut untuk memeriksa apakah share folder yang kita set tadi masih aktif.
  6. Untuk menguji apakah share folder tersebut bisa diakses oleh container, coba buat sembarang file (misal: Hello.txt) pada folder D:\Shared, lalu jalankan perintah berikut:
    docker run -v /shared:/data alpine ls /data
    Jika pada hasil yang keluar Anda melihat file Hello.txt, berarti konfigurasi kita sudah benar.
docker machine share folder

Menggunakan Docker di Windows dengan VMware Workstation driver (tanpa Hyper-V)

Secara default, jika Anda menginstall Docker di Windows, maka ia akan menggunakan Hyper-V yang di-install secara otomatis, dan ini akan mengakibatkan VMware Workstation tidak bisa digunakan. Tentunya ini sangat disayangkan apabila Anda seperti saya yang selalu menggunakan VMware dalam kesehariannya dan juga ingin menggunakan Docker secara bersamaan.

Untuk itu disini kita akan mencoba menggunakan VMware Workstation sebagai machine driver untuk Docker, dan bukan menggunakan Hyper-V.

Docker support beberapa machine drivers, seperti yang terdaftar dalam dokumentasinya di https://docs.docker.com/machine/drivers/. Seperti yang terlihat, disitu terdapat VMware Workstation, hanya saja unofficial, dan tidak di support oleh Docker, namun bisa kita gunakan. Berikut langkah-langkahnya:

  1. Tentunya pastikan VMware Workstation telah ter-install dengan baik di system host.
  2. Download Docker binaries dari https://download.docker.com/win/static/stable/x86_64/, saat ini saya menggunakan yang versi docker-17.09.0-ce.zip. Di dalam file arsip tersebut ada dua file yakni docker.exe dan dockerd.exe, extract kedua file tersebut ke sebuah direktori khusus, misalkan C:\Docker\bin.
  3. Download Docker Machine binaries dari https://github.com/docker/machine/releases, saya menggunakan yang docker-machine-Windows-x86_64.exe. Tempatkan file tersebut bersaman dengan file lainnya yang telah kita download sebelumnya di C:\Docker\bin.
  4. Download Docker Machine driver untuk VMware Workstation dari https://github.com/pecigonzalo/docker-machine-vmwareworkstation/releases, Anda bisa memilih file bernama docker-machine-driver-vmwareworkstation.exe. Tempatkan file tersebut juga ke direktori C:\Docker\bin.
  5. Jalankan Command Prompt (cmd.exe) di Windows lalu pindah ke direktori C:\Docker\bin, menggunakan perintah cd C:\Docker\bin.
  6. Jalankan perintah berikut:
    docker-machine create --driver=vmwareworkstation dev
  7. Jalankan perintah berikut:
    docker-machine env dev > dockerdev.bat
    Ini akan membuat batch file yang bernama dockerdev.bat.
  8. Jalankan batch file yang tercipta sebelumnya:
    dockerdev.bat
  9. Selanjutnya Anda bisa memasukan direktori lokasi file-file Docker berada ke system PATH agar bisa diakses dari direktori manapun melalui Control Panel > System and Security > System > Advanced system settings > klik tab Advanced > Klik “Environtment Variables…”. Pada System variables, temukan entri bernama Path, lalu klik tombol Edit, dan klik tombol New, lalu masukan direktori file binary Docker berada, yakni di C:\Docker\bin.
  10. Kini buka kembali Command Prompt yang baru untuk me-refresh System Path yang telah kita ubah tadi, dan Anda sudah bisa menggunakan perintah Docker seperti biasa. Untuk mengetes nya Anda bisa menjalankan Hello-World (https://docs.docker.com/samples/library/hello-world/ ):
    docker run hello-world
docker hello world