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
...
```
3. Visit [https://localhost:8080](https://localhost:8080) to view the default
Nginx page and verify that the container is running.
4. In the terminal, press <kdb>Ctrl+C</kbd> to stop the container.
{{< /tab >}}
{{< /tabs >}}
You've now run a web server without any set up or configuration. 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 "<h1>Hello world from Docker!</h1>" > /usr/share/nginx/html/index.html
```
This Dockerfile extends the Nginx image from Docker Hub to create a
simple website. With just a few lines, you can easily set up, customize, and
share a static website using Docker.
2. Run the following command to build your image. Replace `<YOUR-USERNAME>` with your Docker ID.
```console
$ docker build -t <YOUR-USERNAME>/nginx-custom .
```
This command builds your image and tags it so that Docker understands which
repository to push it to in Docker Hub. To learn more about the command and
its options, see the [`docker build` CLI
reference](../../reference/cli/docker/buildx/build.md). After running the
command, you should see output similar to the following.
```console {collapse=true}
[+] Building 0.6s (6/6) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 128B 0.0s
=> [internal] load metadata for docker.io/library/nginx:latest 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/2] FROM docker.io/library/nginx:latest 0.1s
=> [2/2] RUN echo "<h1>Hello world from Docker!</h1>" > /usr/share/ 0.2s
=> exporting to image 0.1s
=> => exporting layers 0.0s
=> => writing image sha256:f85ab68f4987847713e87a95c39009a5c9f4ad78 0.0s
=> => naming to docker.io/mobyismyname/nginx-custom 0.0s