# Docker

# Interactive shell (commandline)

Sometimes it's difficult to understand problems within a docker. Like network issues or configurations that need to be adjusted.  
It's quite easy to log into a docker via command line.

1\) open a command line (it can be that you need to activate SSH access) on the hosting system

2\) find the docker image you're interested in

```
docker ps
```

3\) open a shell to the docker using the id from the previous query

```
docker exec -it c05876343 /bin/bash
```

Now you should be inside the docker. To leave the session just type

```
exit
```

# Install ping tools (for diagnostics)

Ping is an utility to see if another host is reachable.  
In some cases, dockers can be isolated and it can be daunting to try to understand who can see whom.

Using ping can help diagnosing some problems

Log into the docker (see [interactive-shell-commandline](/books/docker/page/interactive-shell-commandline) )

And execute the following commands, so you can "ping"

```
apt-get update -y
apt-get install -y iputils-ping
```

# php8.2-fpm with nginx base

Composed from different sources to fit my purpose.

Requires docker to be running on the machine.

This will create a docker image with PHP8.2 using Nginx - which is usable for Laravel.

It's easiest to put the dockerfile together the script ***Dockerbuild.bat*** and run the script.

Dockerfile

```yaml
FROM ubuntu:latest AS base
ENV DEBIAN_FRONTEND noninteractive

# Install dependencies
RUN apt update
RUN apt install -y software-properties-common
RUN add-apt-repository -y ppa:ondrej/php
RUN apt update
RUN apt install -y php8.2\
    php8.2-cli\
    php8.2-common\
    php8.2-fpm\
    php8.2-mysql\
    php8.2-zip\
    php8.2-gd\
    php8.2-mbstring\
    php8.2-curl\
    php8.2-xml\
    php8.2-bcmath\
    php8.2-pdo

# Install php-fpm
RUN apt install -y php8.2-fpm php8.2-cli

# Install composer
RUN apt install -y curl
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Install nodejs
RUN apt install -y ca-certificates gnupg
RUN mkdir -p /etc/apt/keyrings
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
ENV NODE_MAJOR 20
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
RUN apt update
RUN apt install -y nodejs
RUN apt install -y git
# Install nginx
RUN apt install -y nginx
RUN echo "\
    server {\n\
        listen 80;\n\
        listen [::]:80;\n\
        root /var/www/BookStack/public;\n\
        add_header X-Frame-Options \"SAMEORIGIN\";\n\
        add_header X-Content-Type-Options \"nosniff\";\n\
        index index.php;\n\
        charset utf-8;\n\
        location / {\n\
            try_files \$uri \$uri/ /index.php?\$query_string;\n\
        }\n\
        location = /favicon.ico { access_log off; log_not_found off; }\n\
        location = /robots.txt  { access_log off; log_not_found off; }\n\
        error_page 404 /index.php;\n\
        location ~ \.php$ {\n\
            fastcgi_pass unix:/run/php/php8.2-fpm.sock;\n\
            fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;\n\
            include fastcgi_params;\n\
        }\n\
        location ~ /\.(?!well-known).* {\n\
            deny all;\n\
        }\n\
    }\n" > /etc/nginx/sites-available/default

RUN echo "\
    #!/bin/sh\n\
    echo \"Starting services...\"\n\
    service php8.2-fpm start\n\
    nginx -g \"daemon off;\" &\n\
    echo \"Ready.\"\n\
    tail -s 1 /var/log/nginx/*.log -f\n\
    " > /start.sh

EXPOSE 80

CMD ["sh", "/start.sh"]
```

Dockerbuild.bat

With environment variables:

```
docker build --no-cache -t phpnginx:latest .
docker save phpnginx > phpnginx.tar
docker run --env-file .env -d -p 5050:80 phpnginx:latest
```

example .env

```
# Database details
DB_HOST='127.0.0.1' #change with  yours
DB_PORT='234' # change with yours
DB_DATABASE='yourdbname'
DB_USERNAME='yourdbuser'
DB_PASSWORD='yourpass'
```

Without environment variables:

```
docker build --no-cache -t phpnginx:latest .
docker save phpnginx > phpnginx.tar
docker run -d -p 5050:80 phpnginx:latest
```

# Large default vdx

```
>> wsl --shutdown 

```

Verify everything is stopped by:

```
>> wsl.exe --list --verbose

```

Then start diskpart:

```
>> diskpart

```

and inside diskpart type:

```
DISKPART> select vdisk file="<path to vhdx file>"

```

it should respond by saying `DiskPart successfully selected the virtual disk file.`

Then to shrink

```
DISKPART> compact vdisk
```

# Load image from command line

docker load -i imagename.tar

# Virtual Windows machine

docker run -d --name windows\_vm -p 8006:8006 -p 3389:3389/tcp -p 3389:3389/udp --device=/dev/kvm --cap-add=NET\_ADMIN -e VERSION="11" -e RAM\_SIZE="4G" -e CPU\_CORES="2" --stop-timeout 120 dockurr/windows

docker:admin

# Step-by-Step GitHub Releases Workaround: dockur example

<div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sae="" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" id="bkmrk-when-you-can%27t-use-d" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="QI7rSb_z" role="heading">When you can't use docker pull or the github workspace is blocked by your IT department.  
  
</div><div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sae="" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" id="bkmrk-" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="QI7rSb_z" role="heading"></div><div aria-level="3" class="otQkpb" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 20px; font-weight: 600; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sae="" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" id="bkmrk-step-by-step-github-" jsaction="" jscontroller="a7qCn#ZxCkTb" jsuid="QI7rSb_z" role="heading">Step-by-Step GitHub Releases Workaround</div><div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--1" jsaction="rcuQ6b:&QI7rSb_10|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_10"></div><div aria-level="3" class="AdPoic" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sae="" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" id="bkmrk-1.-create-the-action" jsaction="" jscontroller="SF2W9b#clbHl" jsuid="QI7rSb_11" role="heading">1. Create the Action Workflow File</div>1. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Open your regular web browser on your Windows host.</span>
2. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Go to your GitHub profile and create a **New Repository**. Make it **Private** (e.g., `my-image-fetcher`).</span>
3. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Inside your repo, click on the **Actions** tab at the top.</span>
4. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Click the link that says **"set up a workflow yourself"**.</span>
5. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Delete all default text in the editor and paste this configuration exactly:</span>

<div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--2" jsaction="rcuQ6b:&QI7rSb_1q|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_1q"></div><div class="r1PmQe" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAEIBxAA" data-processed="true" data-sfc-cb="" data-sfc-inited="2" data-sfc-root="ep" data-wiz-uids="QI7rSb_1t,QI7rSb_1s" id="bkmrk-yaml" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="QI7rSb_1r"><div data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);"><div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 1px solid rgb(240, 242, 245);" data-sae=""><div class="z0e9Qd" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);"><div class="vVRw1d" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 20px; font-weight: 500; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);">yaml</div></div><div class="pCTyYe" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" dir="ltr">  
</div></div></div></div>```
name: Export Docker Image to Releases
on: [workflow_dispatch]

permissions:
  contents: write

jobs:
  bundle_image:
    runs-on: ubuntu-latest
    steps:
      - name: Pull and Save Image
        run: |
          docker pull ghcr.io/dockur/windows:latest
          docker save -o windows_image.tar ghcr.io/dockur/windows:latest
          
      - name: Create Private Release Asset
        uses: softprops/action-gh-release@v2
        with:
          tag_name: v1.0.0
          name: "Windows Container Download"
          files: windows_image.tar
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

```

<div class="r1PmQe" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAEIBxAA" data-processed="true" data-sfc-cb="" data-sfc-inited="2" data-sfc-root="ep" data-wiz-uids="QI7rSb_1t,QI7rSb_1s" id="bkmrk-use-code-with-cautio" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="QI7rSb_1r"><div data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);"><div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 1px solid rgb(240, 242, 245);" data-sae=""></div><div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 1px solid rgb(240, 242, 245);" data-sae=""><div data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" data-ved="2ahUKEwjPhtqXqqKVAxXIQPEDHQQ0FG4Qh9gSegYIAQgHEAI" jsaction="" jscontroller="cXTEid#e0nEwf" jsuid="QI7rSb_1u"><button aria-describedby="" aria-label="Copy code text to clipboard." class="FTsWP RmjGdc IsqrXb" data-complete="true" data-copy-service-computed-style="font-family: Arial; font-size: 13.3333px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(86, 89, 94);" data-sfc-cb="KjsqPd=&QI7rSb_1u:UEmoBd" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="c" id=""></button></div></div></div></div>6. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Click **Commit changes...** in the top right, then confirm it.</span>

<div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--3" jsaction="rcuQ6b:&QI7rSb_26|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_26"></div>---

<div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--5" jsaction="rcuQ6b:&QI7rSb_28|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_28"></div><div aria-level="3" class="AdPoic" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sae="" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" id="bkmrk-2.-trigger-the-autom" jsaction="" jscontroller="SF2W9b#clbHl" jsuid="QI7rSb_29" role="heading">2. Trigger the Automated Build</div>1. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Go back to the **Actions** tab.</span>
2. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">On the left side, click **"Export Docker Image to Releases"**.</span>
3. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">On the right side, click the **Run workflow** dropdown, and then click the green **Run workflow** button.</span>
4. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Wait about **3 to 5 minutes**. GitHub's remote cloud servers will download the image and package it into a single `.tar` archive asset. A green checkmark will appear when it finishes.</span>

<div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--6" jsaction="rcuQ6b:&QI7rSb_2x|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_2x"></div>---

<div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--8" jsaction="rcuQ6b:&QI7rSb_2z|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_2z"></div><div aria-level="3" class="AdPoic" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sae="" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" id="bkmrk-3.-download-the-tar-" jsaction="" jscontroller="SF2W9b#clbHl" jsuid="QI7rSb_30" role="heading">3. Download the Tar via the Browser</div>1. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Click the main logo of your repository to go back to its home page.</span>
2. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Look at the right-hand sidebar. Under the **Releases** section, you will see a fresh `v1.0.0` tag. Click on it.</span>
3. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Under the "Assets" heading, you will see **`windows_image.tar`**.</span>
4. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Left-click it. Your web browser will download it as a standard static file asset, bypassing the terminal blocks entirely.</span>

<div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--9" jsaction="rcuQ6b:&QI7rSb_3m|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_3m"></div>---

<div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--11" jsaction="rcuQ6b:&QI7rSb_3o|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_3o"></div><div aria-level="3" class="AdPoic" data-animation-nesting="" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 24px 0px 12px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sae="" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" id="bkmrk-4.-import-the-file-i" jsaction="" jscontroller="SF2W9b#clbHl" jsuid="QI7rSb_3p" role="heading">4. Import the File into local Docker</div><div class="n6owBd awi2gc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 12px 0px 16px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAEIERAA" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep" id="bkmrk-once-your-browser-fi" jsaction="" jscontroller="TDBkbc#Ml18Xb" jsuid="QI7rSb_3u">Once your browser finishes downloading the archive to your Windows machine:</div>1. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Drag or cut-paste `windows_image.tar` out of your Downloads folder and into `C:\PROJECTS\CobolSim\`.</span>
2. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Open your local WSL terminal and run:</span><div class="r1PmQe" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAEIEhAC" data-sfc-cb="" data-sfc-root="ep" data-wiz-uids="QI7rSb_48,QI7rSb_47" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="QI7rSb_46"><div data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);"><div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 1px solid rgb(240, 242, 245);" data-sae=""><div class="z0e9Qd" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);"><div class="vVRw1d" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 20px; font-weight: 500; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);">bash</div></div><div class="pCTyYe" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" dir="ltr">  
    </div></div></div></div>```
    cd /mnt/c/PROJECTS/CobolSim
    docker load -i windows_image.tar
    
    ```
    
    <div class="r1PmQe" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 4px 0px 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-hveid="CAEIEhAC" data-sfc-cb="" data-sfc-root="ep" data-wiz-uids="QI7rSb_48,QI7rSb_47" jsaction="" jscontroller="HP6Sjf#lcO7sb" jsuid="QI7rSb_46"><div data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);"><div class="pHpOfb" data-animation-atomic="" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 1px solid rgb(240, 242, 245);" data-sae=""></div><div class="LIBz9e" data-animation-atomic="" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 3px 0px 0px; text-decoration: none; border-bottom: 1px solid rgb(240, 242, 245);" data-sae=""><div data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" data-ved="2ahUKEwjPhtqXqqKVAxXIQPEDHQQ0FG4Qh9gSegYIAQgSEAQ" jsaction="" jscontroller="cXTEid#e0nEwf" jsuid="QI7rSb_49"><button aria-describedby="" aria-label="Copy code text to clipboard." class="FTsWP RmjGdc IsqrXb" data-complete="true" data-copy-service-computed-style="font-family: Arial; font-size: 13.3333px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(86, 89, 94);" data-sfc-cb="KjsqPd=&QI7rSb_49:UEmoBd" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="c" id=""></button></div></div></div></div>
3. <span class="T286Pc" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 16px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-sfc-cb="" data-sfc-cp="" data-sfc-root="ep">Verify it is ready by typing `docker images`.</span>

<div class="Fsg96" data-complete="true" data-copy-service-computed-style="font-family: "Google Sans", Arial, sans-serif; font-size: 14px; font-weight: 400; margin: 0px; text-decoration: none; border-bottom: 0px rgb(10, 10, 10);" data-processed="true" data-sfc-cb="" data-sfc-cp="" data-sfc-inited="2" data-sfc-root="ep" id="bkmrk--12" jsaction="rcuQ6b:&QI7rSb_4k|npT2md" jscontroller="KHhJQ#U8DOt" jsuid="QI7rSb_4k"></div>---