7. Using Docker#

7.1. Introduction#

7.1.1. Why Use Docker for Geospatial Programming?#

7.2. Learning Objectives#

7.3. Installing Docker Desktop#

7.3.1. Windows and macOS#

7.3.2. Linux#

7.3.3. Verifying Installation#

docker --version

7.4. Basic Concepts#

7.4.1. Images vs. Containers#

7.4.2. Key Docker Terms#

7.5. Running Code Examples in Docker#

docker pull giswqs/pygis:book
docker run -it -p 8888:8888 -v $(pwd):/app/workspace giswqs/pygis:book

7.5.1. Working with Files#

7.5.2. Stopping a Container#

7.5.3. Listing Running Containers#

docker ps

7.6. Common Docker Commands#

7.6.1. Basic Operations#

# Pull an image from Docker Hub
docker pull giswqs/pygis:book

# List downloaded images
docker images

# List running containers
docker ps

# List all containers (including stopped ones)
docker ps -a

# Stop a container
docker stop container_name

# Remove a container
docker rm container_name

# Remove an image
docker rmi image_name

7.6.2. Getting Help#

# Get help for any Docker command
docker help
docker run --help

7.6.3. Choosing Port Numbers#

# Use port 8889 instead
docker run -it -p 8889:8888 -v $(pwd):/app/workspace giswqs/pygis:book

7.6.4. Saving Your Work#

7.7. Key Takeaways#

7.8. Exercises#

7.8.1. Exercise 1: First Docker Run#

docker run -it -p 8888:8888 -v $(pwd):/home/jovyan/work ghcr.io/opengeos/leafmap:latest

7.8.2. Exercise 2: Exploring the Environment#

import geopandas as gpd
import rasterio
import leafmap

print("All libraries imported successfully!")
import leafmap.maplibregl as leafmap

m = leafmap.Map(projection="globe")
m

7.8.3. Exercise 3: Working with Different Ports#

7.8.4. Exercise 4: Docker Commands Practice#