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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 05:11:02467browse

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:
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