Giter Club home page Giter Club logo

docker's Introduction

 docker

This repository contains the source files for rapidsai Docker images

Table of Contents

Image Types

There are currently three different types of Docker images, which follow the same conventions provided by the NVIDIA CUDA Docker images, and allow users to use the RAPIDS images as a drop-in replacements for their CUDA images. Each type is supported on a combination of OS, Python version, and CUDA version which produces a variety of available image types. The different types are described below:

Type Description Target Audience
base Extends the corresponding CUDA image to add conda and the RAPIDS conda packages in a rapids conda environment Users that do not need examples or the need to modify and/or build RAPIDS sources
runtime Extends the base image to add the RAPIDS Jupyter notebooks, all dependencies of the notebooks installed to the rapids conda environment, and runs a Jupyter server as the default Docker ENTRYPOINT Users interested in exploring the example notebooks
devel Extends the corresponding CUDA image to add the full RAPIDS build and test toolchain (gcc, build tools, etc.) to the system and/or rapids environment as well as the notebooks, their dependencies, and runs a Jupyter server as the default Docker ENTRYPOINT Users that are doing active development on RAPIDS and need to build and test their changes

At a high-level, the differences between base, runtime, and devel is the way RAPIDS is installed. base and runtime are identical in how RAPIDS is installed, with the only difference between them is that runtime has (many) more 3rd-party packages installed to support the notebooks. devel is completely different in that RAPIDS is built from source in the container and installed into the rapids environment using an install command. Because of these differences, we often refer to the images as base & runtime and devel.

Image Locations

RAPIDS releases both stable and nightly images in the following repositories. stable releases match our conda stable version releases. While our nightly releases are generated every night from the latest WIP development branch. Below is a table of their repositories and tag lists:

Type stable Repository nightly Repository
base rapidsai/rapidsai rapidsai/rapidsai-nightly
runtime rapidsai/rapidsai rapidsai/rapidsai-nightly
devel rapidsai/rapidsai-dev rapidsai/rapidsai-dev-nightly

Extending Images

Like any Docker image, the RAPIDS images can be extended to suit the needs of individual teams. Whether it is to add custom libraries, change security settings, or other customizations; using FROM and our RAPIDS images allows users to customize the container, but easily update to the latest versions with a new docker build.

Custom Token Example

For example, the runtime and devel images use an empty token for securing the Jupyter notebook server. While this is a fast easy solution for dev and exploratory environments, those in production environments may need more security.

Using the following short Dockerfile users can leverage the existing RAPIDS images and build a custom secure image:

FROM rapidsai/rapidsai-nightly:cuda10.2-runtime-ubuntu18.04-py3.7
RUN sed -i "s/NotebookApp.token=''/NotebookApp.token='secure-token-here'/g" /opt/docker/bin/entrypoint_source

Once built, the resulting image will be secured with the new token.

This example can be repurposed by replacing the sed command with other commands for custom libraries or settings.

Building Images

The Dockerfiles can be built from the root project directory with the following command:

docker build -f generated-dockerfiles/ubuntu18.04-base.Dockerfile context/

If no build arguments are specified, the image will be built with the OS specified in the file name (i.e. ubuntu18.04 or centos7) and the default Python and CUDA versions specified in settings.yaml.

You can override these defaults by specifying Docker build arguments:

docker build --build-arg CUDA_VER=10.2 --build-arg PYTHON_VER=3.7 -f generated-dockerfiles/centos7-base.Dockerfile context/

The Ubuntu images can take an additional LINUX_VER build argument to use other supported Ubuntu versions:

docker build --build-arg CUDA_VER=10.2 --build-arg PYTHON_VER=3.7 --build-arg LINUX_VER=ubuntu16.04 -f generated-dockerfiles/ubuntu18.04-base.Dockerfile context/

Contributing

Please see CONTRIBUTING.md for details on how to contribute to this repo.

docker's People

Contributors

ajschmidt8 avatar aleksficek avatar bradreeswork avatar dependabot[bot] avatar dillon-cullinan avatar efajardo-nv avatar jacobtomlinson avatar jakirkham avatar jjacobelli avatar jolorunyomi avatar mattf avatar miguelusque avatar mike-wendt avatar mluukkainen avatar msadang avatar okoskinen avatar raydouglass avatar riebart avatar rlratzel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.