Home Backend Development Python Tutorial From Setup to Deployment: Running a Flask App in Docker on Mac

From Setup to Deployment: Running a Flask App in Docker on Mac

Nov 04, 2024 am 05:11 AM

Download Docker

Docker Images

  • Docker Images are the templates (blueprint) of the project
  • Images can not be updated it's read-only
  • It has Source code, Libraries, external dependencies, tools etc.

Docker Containers

  • Containers are the running instance of the Image
  • It runs independently on computer hence we can call it, it's an isolated process

Docker base Image or Parent Image

  • Example Python programming image which we can download from official website of Docker hub

How do we create Docker image

  • To create a Docker image, we write the details in a Dockerfile that contains instructions for building the image. When we build this Dockerfile, an image is generated, which we can then run as a container.

Now let's proceed with setup and run
After downloading docker desktop

  • search Python base image in docker hub pull it using Terminal or Docker Desktop

  • run using Terminal or Docker Desktop

    docker run -it --name rajnish_python python /bin/bash

From Setup to Deployment: Running a Flask App in Docker on Mac

now go to Container in docker desktop and see if it's running.

  • Open Container and explore it more by checking python version

From Setup to Deployment: Running a Flask App in Docker on Mac

let's create a basic Python Flask web-app and run it through docker

  • either you can create a new web app or just clone my repository productivity

git clone https://github.com/rajnishspandey/productivity.git


Here I have created a project and it's in my local I want to create a new repository on github and push it from my Terminal

git init

in case you want to remove the git initialised you can run below command and do git init again to add.

rm -rf git

git add .

git commit -m 'Initial Commit'

  • I created a repository called productivity on github and will link it with my local/remote git

git remote set-url origin https://github.com/rajnishspandey/productivity.git

git push -u origin master

  • now let's build the app and copy all the files of our application to our container > docker build -t productivity-app .

From Setup to Deployment: Running a Flask App in Docker on Mac

command to check how many images we have in docker
run docker images in Terminal

we can see now new images is created in the docker

From Setup to Deployment: Running a Flask App in Docker on Mac

Now we have to run it through container

From Setup to Deployment: Running a Flask App in Docker on Mac

  • click on ports 5500:5000 From Setup to Deployment: Running a Flask App in Docker on Mac

it will redirect you to the browser and you should see the app running

From Setup to Deployment: Running a Flask App in Docker on Mac

Docker Command list from official site

some useful docker commands

  • docker images to check all the images
  • docker build -t -app . to build an images from your application
  • docker image rm - to delete image which is not in use
  • docker run -it --name /bin/bash to create a new container and run it from base image. (here above we had python as base image)
  • docker image rm -f delete image which is in use forcefully
  • docker ps -a to see all the containers running
  • docker container rm to delete container which is not running
  • docker container rm -f to delete container forcefully which is running
  • docker system prune -a to delete all containers, images and caches.
  • docker compose up to run docker compose file and created image

The above is the detailed content of From Setup to Deployment: Running a Flask App in Docker on Mac. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to solve the permissions problem encountered when viewing Python version in Linux terminal? How to solve the permissions problem encountered when viewing Python version in Linux terminal? Apr 01, 2025 pm 05:09 PM

Solution to permission issues when viewing Python version in Linux terminal When you try to view Python version in Linux terminal, enter python...

How to avoid being detected by the browser when using Fiddler Everywhere for man-in-the-middle reading? How to avoid being detected by the browser when using Fiddler Everywhere for man-in-the-middle reading? Apr 02, 2025 am 07:15 AM

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

How to efficiently copy the entire column of one DataFrame into another DataFrame with different structures in Python? How to efficiently copy the entire column of one DataFrame into another DataFrame with different structures in Python? Apr 01, 2025 pm 11:15 PM

When using Python's pandas library, how to copy whole columns between two DataFrames with different structures is a common problem. Suppose we have two Dats...

How to teach computer novice programming basics in project and problem-driven methods within 10 hours? How to teach computer novice programming basics in project and problem-driven methods within 10 hours? Apr 02, 2025 am 07:18 AM

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

How does Uvicorn continuously listen for HTTP requests without serving_forever()? How does Uvicorn continuously listen for HTTP requests without serving_forever()? Apr 01, 2025 pm 10:51 PM

How does Uvicorn continuously listen for HTTP requests? Uvicorn is a lightweight web server based on ASGI. One of its core functions is to listen for HTTP requests and proceed...

How to solve permission issues when using python --version command in Linux terminal? How to solve permission issues when using python --version command in Linux terminal? Apr 02, 2025 am 06:36 AM

Using python in Linux terminal...

How to get news data bypassing Investing.com's anti-crawler mechanism? How to get news data bypassing Investing.com's anti-crawler mechanism? Apr 02, 2025 am 07:03 AM

Understanding the anti-crawling strategy of Investing.com Many people often try to crawl news data from Investing.com (https://cn.investing.com/news/latest-news)...

See all articles