- Goal:Learn Docker and its fundamentals. By the end of the week, you will have the knowledge and skills to create docker images and run containers.
- Dates: from 18th October to 25th October.
- Where:
#project-of-the-week
in DataTalks.Club (get in slack here: https://datatalks.club/slack.html)
For more information about the "Project of the Week" initiative at DataTalks.Club, see README.md.
If you want to receive reminders about this event, sign up here
- VS Code
- Docker
- Python
- FastAPI,Flask,Streamlit
- Github
Note: this is a suggested list of technologies, you can chose alternatives instead
This is a proposed plan only, you don’t have to follow it day-by-day.
- Check the first 20 mins of Nana’s Docker tutorial:
- Install Docker Desktop from https://docs.docker.com/engine/install/
- Suggestion: Run
docker start
in your terminal. Note: The requirements for running this command successfully differentiate on each OS. - Read the Introduction of Docker Documentation: https://docker-curriculum.com/
- Create a GitHub repository.
- Share your progress in Slack and on social media.
Suggested material:
Found good materials? Create a PR with links!
- Docker Desktop to interact with Docker for Windows users ( using WSL )
- If you don't have WSL installed, then visit the link first and then follow the above step.
- Pull a basic image and test some basic commands of Docker command line: Docker commands in the command line
- Create your own
hello world
Dockerfile, create an image from it and run a container: Hello world with Docker, Hello world with Docker - Learn basic Docker commands and test them arround with the dockerfile: https://docs.docker.com/engine/reference/builder/
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
Suggested material:
Found good materials? Create a PR with links!
- Choose a project on your own, you can create a simple prediction model or an analysis. Choose a dataset from this link: list of some datasets
- Create a script that prints information about this dataset. (for exampe df.describe) or that makes a prediction.
- Create a Dockerfile with a light python image that prints the same result after running the container.
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
Suggested material:
- 📺 Docker Tutorial For Beginners
- 🗒️ Build Docker application with python example
- 🗒️ Python Dockerfile tutorial
Found good materials? Create a PR with links!
- Create an API for your project. It can be a simple get reques with a simple message or a post request for your model prediciton. If you dont have much time to prepare your own API in python check these examples and the required commands from this repo: prediction_service.py
- You can also create a frontend server with streamlit.
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
Suggested material:
- 📺 FastAPI link 1
- 📺 FastAPI link 2
- 📺 Flask
- 📺 Streamlit
Found good materials? Create a PR with links!
- Create a Dockerfile that contains commands to run the API. Use a light python image as a base. See the suggestions below depending on the tool you used yesterday.
- Run the container and test your API endpoint. (make sure you have exposed the port of the container).
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
Suggested material:
- 🗒️ Streamlit
- 🗒️ FastAPI link 1
- 🗒️ FastAPI link 2
- 🗒️ Flask
Found good materials? Create a PR with links!
- Finish building your image.
- Test if it is an API the endpoint using python library request. Check this example: https://github.com/AntonisCSt/Docker_POW/blob/main/simple_FastAPI_prediction/send_data.py
- Publish your Docker Image to DockerHub.
- Push your changes to GitHub.
- Share your progress in Slack and on social media
Suggested material:
Found good materials? Create a PR with links!
- Continue exploring more about this topic.
- Bonus: Configure CI/CD on your project.
- Push your changes to GitHub.
- Share your progress in Slack and on social media.
- Give us feedback.
- Add the link to your project to this project of the week GitHub page.
Suggested material:
- 🗒️ Docker official
- 🗒️ CI/CD with github actions Found good materials? Create a PR with links!
List of projects from our participants:
- Repo with files related to project-of-the-week by Prabin
- ...
- (Create a PR)
(We will put the projects here after the event finishes)