--- description: Learn how to get started using Docker Hub keywords: Docker Hub, push image, pull image, repositories title: Docker Hub quickstart linkTitle: Quickstart weight: 10 --- Docker Hub provides a vast library of pre-built images and resources, accelerating development workflows and reducing setup time. You can build upon pre-built images from Docker Hub and then use repositories to share and distribute your own images with your team or millions of other developers. This guide shows you how to find and run a pre-built image. It then walks you through creating a custom image and sharing it through Docker Hub. ## Prerequisites - [Download and install Docker](../../get-started/get-docker.md) - [Create a Docker account](https://app.docker.com/signup) ## Step 1: Find an image in Docker Hub's library You can search for content in Docker Hub itself, in the Docker Desktop Dashboard, or by using the `docker search` CLI command. Searching on Docker Hub itself offers the most options to explore content. To search or browse for content on Docker Hub: 1. Navigate to the [Docker Hub Explore page](https://hub.docker.com/explore). On the Explore page, you can browse by catalog or category, or use the search to quickly find content. 2. Under **Categories**, select **Web servers**. After the results are displayed, you can further filter the results using the filters on the left side of the page. 3. In the filters, select **Docker Official Image**. Filtering by Trusted Content ensures that you see only high-quality, secure images curated by Docker and verified publishing partners. 4. In the results, select the **nginx** image. Selecting the image opens the image's page where you can learn more about how to use the image. On the page, you'll also find the `docker pull` command to pull the image. Now that you've found an image, it's time to pull and run it on your device. ## Step 2: Pull and run an image from Docker Hub 1. In your terminal, run the following command to pull and run the Nginx image. ```console $ docker run -p 8080:80 --rm nginx ``` The `docker run` command automatically pulls and runs the image without the need to run `docker pull` first. To learn more about the command and its options, see the [`docker run` CLI reference](../../reference/cli/docker/container/run.md). After running the command, you should see output similar to the following. ```console {collapse=true} Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx a480a496ba95: Pull complete f3ace1b8ce45: Pull complete 11d6fdd0e8a7: Pull complete f1091da6fd5c: Pull complete 40eea07b53d8: Pull complete 6476794e50f4: Pull complete 70850b3ec6b2: Pull complete Digest: sha256:28402db69fec7c17e179ea87882667f1e054391138f77ffaf0c3eb388efc3ffb Status: Downloaded newer image for nginx:latest /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2024/11/07 21:43:41 [notice] 1#1: using the "epoll" event method 2024/11/07 21:43:41 [notice] 1#1: nginx/1.27.2 2024/11/07 21:43:41 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14) 2024/11/07 21:43:41 [notice] 1#1: OS: Linux 6.10.11-linuxkit 2024/11/07 21:43:41 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576 2024/11/07 21:43:41 [notice] 1#1: start worker processes 2024/11/07 21:43:41 [notice] 1#1: start worker process 29 ... ``` 2. Visit [https://localhost:8080](https://localhost:8080) to view the default Nginx page and verify that the container is running. 3. In the terminal, press CTRL+C to stop the container. You've now run a web server without any set up or configuration, all from a single command. Docker Hub provides instant access to pre-built, ready-to-use container images, letting you quickly pull and run applications without needing to install or configure software manually. With Docker Hub's vast library of images, you can experiment with and deploy applications effortlessly, boosting productivity and making it easy to try out new tools, set up development environments, or build on top of existing software. You can also extend images from Docker Hub, letting you quickly build and customize your own images to suit specific needs. ## Step 3: Build and push an image to Docker Hub 1. Create a [Dockerfile](/reference/dockerfile.md) to specify your application: ```dockerfile FROM nginx RUN echo "