Maintaining Files Between Builds
Docker will overwrite files inside the container between builds and resources like databases and cache files may be overwritten. To work around this, it can be useful to create mount points that will reference volumes on the host server (or another server).
docker run --mount type=bind,src=/home/docker,target=/app/database -dp 5000:5000 fnv
Run
Not ideal because it resets whenever you start the container. Need a better way:
sudo docker run -it -p 8888:8888 jupyter/pyspark-notebook jupyter notebook --no-browser --allow-root --ip=0.0.0.0
Then access it from a browser:
You'll need the token from the docker terminal the first time accessing the notebook.
Get Shell to Container
Get a list of running containers and find the id for your specific container:
[bpopp@p1 pubs]$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e0fd0ef0e5c0 jupyter/all-spark-notebook "tini -g -- jupyter …" 22 hours ago Up 22 hours 0.0.0.0:8888->8888/tcp kind_sanderson
Launch a shell
sudo docker exec -it e0fd0ef0e5c0 /bin/bash
Or as root
sudo docker exec -u root -it e0fd0ef0e5c0 /bin/bash
To install something
pip install plotnine --proxy http://myproxy.somewhere.com:3128