Installation of further Python packages comes next, to extend the Python capabilities. When  Docker installs the  jaydebeapi  package this pulls in V0.7.0 of the JPype1 package. However,  there is an issue with this version, so we use a command to get the V0.6.3 version of JPype1  package. Not all of the installed packages are required for the base jdbc connection. However, they  enable you to create graphs and perform further data analysis tasks. The last line is  generates a default jupyter configuration file for reference. It won‘t be used in this scenario,  because all the required settings are passed as arguments during the start of the Jupyter  Notebook. Example 8-18 Install additional Python packages RUN python3 -m pip install --upgrade pip \ && python3 -m pip install notebook \ jupyterlab \ plotly \ numpy \ pandas \ ipywidgets \ jaydebeapi \ ibm_db \ matplotlib \ && python3 -m pip install JPype1==0.6.3 --force-reinstall RUN jupyter notebook --generate-config The last section is the creation of a folder to hold the Db2 JAR files. They are copied from the  /home/admin/db2jars  folder of the ssh container of the zCX instance into the Ubuntu image to  the folder created as the first command ( RUN mkdir /db2jars ).  Then, a new group and user are created. This non-root user ID is used so that the Jupyter  Notebook server does not run as root in the container. In the home directory of that user, a folder called  notebooks  is created for use as the mount  point for the Docker volume that was created in the first step. The final statement of the  Dockerfile contains the startup command for the Notebook server.  Use of the value 0.0.0.0 for TCPIP address means that the Jupyter notebook server can  accept requests from any TCPIP address, rather than defaulting to an internal localhost type  address. Use of the internal address would prevent the acceptance of requests from outside  the container. For the port, you can choose any port that not yet used within the zCX instance. Example 8-19 Prepare the Notebook start # Copy all files from local zCX db2jars folder into the ubuntu images /db2jars folder RUN mkdir /db2jars ADD db2jars /db2jars # Create a new group and user to run the notebook server RUN groupadd jupyter-group && useradd -ms /bin/bash -G jupyter-group jupyter-user USER jupyter-user RUN mkdir /home/jupyter-user/notebooks ENTRYPOINT  ["jupyter","notebook","--ip=0.0.0.0","--port=8888","--allow-root","--notebook-dir=/home/jup yter-user/notebooks"] 206  Getting started with z/OS Container Extensions