Skip to content

Instantly share code, notes, and snippets.

@rwcitek
Last active April 3, 2023 01:32
Show Gist options
  • Select an option

  • Save rwcitek/346510ce85c383ba67a84f56fc3dd6c6 to your computer and use it in GitHub Desktop.

Select an option

Save rwcitek/346510ce85c383ba67a84f56fc3dd6c6 to your computer and use it in GitHub Desktop.
Docker container with Data Science CLI tools

Commands for creating a Docker container inspired by Data Science at the Command Line, 2nd Edition

# clean up namespace
docker container stop ds_cli  ; docker container rm ds_cli 

# run instance as service
docker container run -d -v /tmp/ds_cli:/tmp/ds_cli --name ds_cli ubuntu:22.04 sleep inf

# update instance
docker container exec -i ds_cli /bin/bash << 'eof'
  DEBIAN_FRONTEND=noninteractive
  apt-get update
  apt-get install -y --no-install-recommends \
    bsdextrautils \
    csvkit \
    curl \
    jq \
    less \
    ruby \
    tree \
    vim \
    ;
eof

# connect into instance
docker container exec -it -w /tmp/ds_cli ds_cli /bin/bash

Pushing Docker image to Dockerhub

# log into Dockerhub
dh_user="{your Dockerhuber username}"
docker login --username "${dh_user}"

# commit to an image with Dockerhub repo tag
dh_tag=$( date +%s )
docker container commit ds_cli "${dh_user}"/ds_cli:${dh_tag}
docker tag "${dh_user}"/ds_cli:${dh_tag} "${dh_user}"/ds_cli:latest

# push to Dockerhub
docker image push "${dh_user}"/ds_cli:${dh_tag}
docker image push "${dh_user}"/ds_cli:latest

# remove images from local cache
docker image rm "${dh_user}"/ds_cli:${dh_tag} "${dh_user}"/ds_cli:latest

# pull and tag image from Dockerhub
docker pull "${dh_user}"/ds_cli
docker tag "${dh_user}"/ds_cli ds_cli

# test by running container
docker run --rm ds_cli echo Greetings

# run service
docker container run -d -v /tmp/ds_cli:/tmp/ds_cli --name ds_cli ds_cli

# connect into instance
docker container exec -it -w /tmp/ds_cli ds_cli /bin/bash

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment