{
    "componentChunkName": "component---src-templates-blog-post-js",
    "path": "/README/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Linuxdev Documentation","social":{"disqusShortName":"kennyyeoyounet"}}},"markdownRemark":{"id":"353110f7-3eab-5001-afc4-9591e38db8e5","excerpt":"Linuxdev Boot up Linux development env using Vagrant  Docker Desktop Linuxdev with Vagrant Docker hub account signin is required if you want to stop checking…","html":"<h1 id=\"linuxdev\" style=\"position:relative;\" class=\"title\"><a href=\"#linuxdev\" aria-label=\"linuxdev permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Linuxdev</h1>\n<p>Boot up Linux development env using Vagrant</p>\n<table>\n<thead>\n<tr>\n<th></th>\n<th>Docker Desktop</th>\n<th>Linuxdev with Vagrant</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Docker hub account</td>\n<td><sub>signin is required if you want to stop checking updates</sub></td>\n<td><sub>✅<strong>login to Docker hub is not necessary</strong></sub></td>\n</tr>\n<tr>\n<td>Control over the Docker Engine Version</td>\n<td><sub>Should use latest above v3, unless the user ignore the updates</sub></td>\n<td><sub>✅<strong>have the controll for docker-ce (community edition)</strong></sub></td>\n</tr>\n<tr>\n<td>Licensing</td>\n<td><sub>free for small business and personal, but auto-checking-update</sub></td>\n<td><sub>✅<strong>free of charge (w/o VB extension pack)</strong></sub></td>\n</tr>\n<tr>\n<td>Network setup</td>\n<td><sub>Host network\t</sub></td>\n<td><sub>✅<strong>Can Choose <br>. Bridge(host) <br>. NAT + Host-only</strong></sub></td>\n</tr>\n<tr>\n<td>Performance</td>\n<td><sub>. Hyper-v VM; might be slightly better but it likely consumes more memory</sub></td>\n<td><sub>. Virtualbox VM; not so bad<br>. Has alternatives (Hyper-v/VMWare/Virtualbox)</sub></td>\n</tr>\n<tr>\n<td>Environment</td>\n<td><sub>Slightly different environment between<br>. Windows WSL2 (Custom distro integration required for Docker host access)<br>. Windows VM (w/o Docker host acess)<br>. Mac VM (w/o Docker host acess)</sub></td>\n<td><sub>✅<strong>Common Linux environment available in Mac/Windows<br>. Full Linux VM will be provided as a Docker host<br>  (Files can be shared natively in Linux host)<br>. Docker engine can be also accessed from the host OS<br>  (docker and docker-compose client installation required)</strong></sub></td>\n</tr>\n<tr>\n<td>Installation</td>\n<td><sub>Installer provided</sub></td>\n<td><sub>Install scripts provided</sub></td>\n</tr>\n<tr>\n<td>Starting Docker</td>\n<td><sub><strong>Autostart configurable</strong></sub></td>\n<td><sub>Startup script is provided both for Windows and Mac</sub></td>\n</tr>\n<tr>\n<td>Clients</td>\n<td><sub>Provided along with the Docker Desktop installer</sub></td>\n<td><sub>Install scripts provided</sub></td>\n</tr>\n<tr>\n<td>Config</td>\n<td><sub>✅<strong>Configurable in GUI</strong></sub></td>\n<td><sub>Configurable in script</sub></td>\n</tr>\n<tr>\n<td>Docker storage</td>\n<td><sub>Configurable size</sub></td>\n<td><sub>✅<strong>Configurable 2k block size with a lot of inodes</strong></sub></td>\n</tr>\n<tr>\n<td>Logs/status</td>\n<td><sub>✅<strong>GUI provided</strong></sub></td>\n<td><sub>Only available in CLI</sub></td>\n</tr>\n<tr>\n<td>Limiting memory usuage</td>\n<td><sub>.wslconfig file for WSL2/GUI for VM</sub></td>\n<td><sub>.env file/VirtualBox GUI</sub></td>\n</tr>\n</tbody>\n</table>\n<h2 id=\"-note-for-windows-vbs-virtualization-based-security-or-device-guard\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#-note-for-windows-vbs-virtualization-based-security-or-device-guard\" aria-label=\" note for windows vbs virtualization based security or device guard permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>⚠ Note for Windows VBS (Virtualization-based security or Device Guard)</h2>\n<p><strong>Some</strong> recent windows update enables VBS and it will turn on hyper-v\nand that would make Vrtualbox slow and unstable.</p>\n<p>If <code class=\"language-text\">systeminfo</code> command shows following at the bottom, it’s good to use Virtualbox.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">Hyper-V Requirements:      VM Monitor Mode Extensions: Yes\n                           Virtualization Enabled In Firmware: Yes\n                           Second Level Address Translation: Yes\n                           Data Execution Prevention Available: Yes</code></pre></div>\n<p>Pease follow <a href=\"https://github.com/kennyhyun/linuxdev/issues/71\">he issue</a> for further guidance.</p>\n<h2 id=\"why\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#why\" aria-label=\"why permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Why?</h2>\n<p>Docker is necessary for developing nowadays. But if you are not using Linux as the OS, it requires VM for Docker engine.</p>\n<p>I was using Linux in Virtualbox for many years and found that was quite nice and had no problem for using docker in it. And personally satisfied with the performance of docker in VM\nIn the other hand, Docker Desktop, I found couple of issue with using Docker Desktop in Windows recently.</p>\n<details>\n<summary>What I didn't like about WSL/Docker Desktop</summary>\n<ul>\n<li>Memory usage is keep growing upto VM memory limitation</li>\n<li>some file was missing for binding into docker</li>\n<li>Additional settings to ssh in to the linux</li>\n<li>ssh connection env was a bit different (not sure) when used in terminal</li>\n<li>X client was blocked by Windows Firewall</li>\n<li>not sure what it was but felt heavy</li>\n</ul>\n</details>\n<h3 id=\"some-known-docker-desktop-for-windows-issue\" style=\"position:relative;\"><a href=\"#some-known-docker-desktop-for-windows-issue\" aria-label=\"some known docker desktop for windows issue permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Some known Docker Desktop for Windows issue</h3>\n<ul>\n<li>Watching files in the host is not working</li>\n<li>Hyper-v is not returning unused memory frequently so the host can be struggling with memory.</li>\n</ul>\n<p>So it’s generally recommended to use WSL2 Ubunu but I would rather use VM</p>\n<h3 id=\"linuxdev-with-vagrant-virtualbox\" style=\"position:relative;\"><a href=\"#linuxdev-with-vagrant-virtualbox\" aria-label=\"linuxdev with vagrant virtualbox permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Linuxdev with Vagrant (VirtualBox)</h3>\n<ul>\n<li>Virtualbox seems to be able to run many containers more stable and does not apply much pressure to the host memory. (compared to WSL2)</li>\n<li>Generally there are less issues in developing in Linux than Windows (Same reason to use WSL2)</li>\n<li>Full configurable linux host (docker)</li>\n<li>USB ports can be used directly in VM (Note: USB3 in VB is available in the extension pack, which is free for only personal users)</li>\n</ul>\n<h3 id=\"also-for-mac-users\" style=\"position:relative;\"><a href=\"#also-for-mac-users\" aria-label=\"also for mac users permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Also for Mac Users</h3>\n<p>Not only for the Windows users, there would be some advantage for Mac users as well</p>\n<ul>\n<li>Easily backup/cleanup VM/dev env</li>\n<li>The dev env is a sandbox</li>\n<li>A reference environment for Linux env</li>\n<li>Run linux GUI apps using X server and tunneling</li>\n<li>Docker is running Linux VM already, why not?</li>\n<li>Multiple network interfaces available</li>\n</ul>\n<p>And if you are familiar with the Linux command line, using Linux makes more senses than using Docker Desktop.</p>\n<ul>\n<li>Share VM when you need to bootcamp to windows</li>\n<li>Access to docker host</li>\n<li>Unlimited access to host(Linux VM) root directory</li>\n<li>Faster host(Linux VM) volume sharing</li>\n<li>Free</li>\n</ul>\n<h3 id=\"performance-comparison\" style=\"position:relative;\"><a href=\"#performance-comparison\" aria-label=\"performance comparison permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Performance comparison</h3>\n<p>For comparison, I tried one of my project which builds multiple docker images with node.js and filling up 20GB of docker storage.</p>\n<p>Building includes installing node packages and webpack.\nDocker build kit was used for cache mounting.</p>\n<table>\n<thead>\n<tr>\n<th>Env</th>\n<th>Build Time</th>\n<th>Note</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Linuxdev (Windows host)<br>6GB, i7 4 cores</td>\n<td>24m 12s</td>\n<td></td>\n</tr>\n<tr>\n<td>WSL2 (Docker Descktop)<br>16GB, i7 6 cores (no .wslconfig)</td>\n<td>19m 18s</td>\n<td>spent up to 13GB</td>\n</tr>\n<tr>\n<td>WSL2 (Docker Descktop)<br>8GB, i7 6 cores (with .wslconfig)</td>\n<td>18m 22s</td>\n<td></td>\n</tr>\n<tr>\n<td>Linuxdev (Windows host)<br>8GB , i7 6 cores</td>\n<td>✅ <strong>14m 39s</strong></td>\n<td></td>\n</tr>\n<tr>\n<td>Mac OSX (Docker Descktop)<br>8GB, i7 6 cores</td>\n<td>19m 37s</td>\n<td>First build failed after 1 hour</td>\n</tr>\n<tr>\n<td>Linuxdev (Windows host)<br>8GB , i7 4 cores</td>\n<td>21m 13s</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<p>This was just an instance of the build. Just to let you know.\nAs you noticed, Linuxdev was the best in some situation.</p>\n<h2 id=\"setting-up-the-linuxdev-environment\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#setting-up-the-linuxdev-environment\" aria-label=\"setting up the linuxdev environment permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Setting up the Linuxdev environment</h2>\n<h3 id=\"-note-for-windows-users\" style=\"position:relative;\"><a href=\"#-note-for-windows-users\" aria-label=\" note for windows users permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>⚠ Note for Windows users</h3>\n<p>The script will disable Hyper-v (WSL2) and replace with VM and you can also use Docker from the host OS</p>\n<h3 id=\"running-scripts\" style=\"position:relative;\"><a href=\"#running-scripts\" aria-label=\"running scripts permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Running scripts</h3>\n<ol>\n<li>Unzip or git clone this repo\n<ul>\n<li><a href=\"https://github.com/kennyhyun/linuxdev/archive/refs/heads/main.zip\">https://github.com/kennyhyun/linuxdev/archive/refs/heads/main.zip</a></li>\n</ul>\n</li>\n<li>Run setup scripts\n<ul>\n<li>Windows\n<ol>\n<li>Install host dependencies and dev tools\n<ul>\n<li>Open powershell as Admin and run\n<ul>\n<li><code class=\"language-text\">Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass</code>: enables ps1 for this powersell process</li>\n<li><code class=\"language-text\">setup.ps1</code></li>\n</ul>\n</li>\n<li>This might require rebooting.</li>\n</ul>\n</li>\n<li>Bootup vagrant with provision\n<ul>\n<li>Open terminal (git bash) and run <code class=\"language-text\">bootstrap.sh</code></li>\n</ul>\n</li>\n</ol>\n</li>\n<li>Mac\n<ol>\n<li>Install host dependencies and dev tools\n<ul>\n<li>Open teminal and run <code class=\"language-text\">setup.sh</code></li>\n</ul>\n</li>\n<li>Bootup vagrant with provision\n<ul>\n<li>continue to run <code class=\"language-text\">bootstrap.sh</code></li>\n</ul>\n</li>\n</ol>\n</li>\n</ul>\n</li>\n<li>Wait until bootstrap.sh does\n<ul>\n<li>input username to use in the VM</li>\n<li>Install Debian Linux 10.10</li>\n<li>Install Docker v20.10.8 (configurable in config/env_var.sh; remove VERSION if you want the latest)</li>\n<li>Install docker-compose (v1.29.2; configurable in .env <code class=\"language-text\">__VM__COMPOSE_VERSION</code>)</li>\n<li>Create a user with UID 1000 and sudoer</li>\n<li>ohmyzsh</li>\n<li>expose samba share, <code class=\"language-text\">Projects</code></li>\n<li>generate id_rsa key and show public key</li>\n<li>add ssh config for linuxdev</li>\n<li>generate docker certificates and set bash variables</li>\n</ul>\n</li>\n</ol>\n<p>It’s okay to repeat this bootstrap script if something went wrong.</p>\n<h3 id=\"after-finished-bootstraping\" style=\"position:relative;\"><a href=\"#after-finished-bootstraping\" aria-label=\"after finished bootstraping permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>After finished bootstraping</h3>\n<p>Copy and paste ssh public key to use in Github and where ever it’s required.</p>\n<p>Now you can ssh into Linux dev env</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">ssh</span> linuxdev</code></pre></div>\n<p>and you can also run any linux commands from the host terminal</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">ssh</span> linuxdev -t <span class=\"token builtin class-name\">echo</span> hello from VM</code></pre></div>\n<p>For Windows Terminal, there is also a profile generated for the machine.</p>\n<p>An additional external configuration <a href=\"https://github.com/kennyhyun/dotfiles\">dotfiles project like this</a> can be added</p>\n<p>If DOTFILES_REPO has been defined in <code class=\"language-text\">.env</code>, it clones the repo to ~/dotfiles and try to run</p>\n<ul>\n<li>bootstrap*</li>\n<li>init*</li>\n<li>install*</li>\n<li>setup*</li>\n</ul>\n<p>any of files which is executable.</p>\n<h2 id=\"demo\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#demo\" aria-label=\"demo permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Demo</h2>\n<p><code class=\"language-text\">setup.ps1</code> (Windows Powershell script; Use setup.sh for Mac)</p>\n<p><a href=\"https://asciinema.org/a/IqGHfToxLcfSwSJRoBIHZBoWY\"><img src=\"https://asciinema.org/a/IqGHfToxLcfSwSJRoBIHZBoWY.svg\" alt=\"asciicast\"></a></p>\n<p><code class=\"language-text\">bootstrap.sh</code> (Mac; You can also use it in Git bash in Windows Terminal)</p>\n<p><a href=\"https://asciinema.org/a/o7HNUExImgO6gCKjlUTczwK7G\"><img src=\"https://asciinema.org/a/o7HNUExImgO6gCKjlUTczwK7G.svg\" alt=\"asciicast\"></a></p>\n<h2 id=\"packages-managed-by-linuxdev\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#packages-managed-by-linuxdev\" aria-label=\"packages managed by linuxdev permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Packages managed by Linuxdev</h2>\n<h3 id=\"packages-covered-by-setup-host\" style=\"position:relative;\"><a href=\"#packages-covered-by-setup-host\" aria-label=\"packages covered by setup host permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Packages covered by setup (host)</h3>\n<ul>\n<li>vagrant</li>\n<li>virtualbox</li>\n<li>vscode</li>\n<li>git</li>\n<li>Windows Terminal (Windows)</li>\n<li>iterm2 (Mac)</li>\n<li>gnu-sed (Mac)</li>\n<li>and so on…</li>\n</ul>\n<h3 id=\"packages-covered-by-bootstrap-vm\" style=\"position:relative;\"><a href=\"#packages-covered-by-bootstrap-vm\" aria-label=\"packages covered by bootstrap vm permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Packages covered by bootstrap (VM)</h3>\n<ul>\n<li>docker (installed by vagrant provision)</li>\n<li>docker-compose</li>\n<li>python3-pip</li>\n<li>git</li>\n<li>zsh</li>\n<li>oh-my-zsh</li>\n<li>vim-gtk (for vim-python3)</li>\n<li>dnsutils</li>\n<li>and so on…</li>\n</ul>\n<h2 id=\"tips\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#tips\" aria-label=\"tips permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"./docs/tips\">Tips</a></h2>\n<h2 id=\"configuring-vm\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#configuring-vm\" aria-label=\"configuring vm permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><a href=\"./docs/configuring-vm\">Configuring VM</a></h2>\n<h2 id=\"installing-and-using-docker-clients\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#installing-and-using-docker-clients\" aria-label=\"installing and using docker clients permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Installing and using docker clients</h2>\n<p>This vm provides docker connection in <code class=\"language-text\">2376</code> port.\nIf you have docker client and set the env vars you can use docker from the host like Docker Desktop.</p>\n<p>You can also install docker and docker-compose by running install-docker-clients script.</p>\n<p><code class=\"language-text\">.bashrc</code> or <code class=\"language-text\">.zshrc</code> has DOCKER_HOST and required variables for Mac/Git-bash and <code class=\"language-text\">docker_env.bat</code> will set variables in the command terminal in Windows.</p>\n<p>Bootstrap installes the required variables automaticaly so you can use docker straightaway.</p>\n<h2 id=\"additional-goals\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#additional-goals\" aria-label=\"additional goals permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Additional Goals</h2>\n<ul>\n<li>Share virtualbox env across Bootcamp</li>\n<li>Provide recommended fonts with Powerline patch</li>\n</ul>\n<h2 id=\"license\" style=\"position:relative;\" class=\"subtitle\"><a href=\"#license\" aria-label=\"license permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>License</h2>\n<p><a href=\"https://github.com/kennyhyun/linuxdev/blob/main/LICENSE\">MIT License</a></p>","fields":{"slug":"/README/","language":""},"frontmatter":{"title":"","date":null,"description":null}},"previous":{"fields":{"slug":"/docs/trouble-shooting-and-advanced-usages/"},"frontmatter":{"title":"Trouble shooting and advanced usages"}},"next":null},"pageContext":{"id":"353110f7-3eab-5001-afc4-9591e38db8e5","previousPostId":"3983e6bf-1b00-5cf5-ae9e-62d291660e87","nextPostId":null,"language":"en","i18n":{"language":"en","languages":["en","ko","ja"],"defaultLanguage":"en","generateDefaultLanguagePage":false,"routed":false,"originalPath":"/README/","path":"/README/"}}},
    "staticQueryHashes": ["2355076697","3347749741"]}