Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2213870
Update Manage SSO guide
sarahsanders-docker Oct 29, 2024
07bf87e
Remove Hub tab on manage users heading
sarahsanders-docker Oct 29, 2024
68effdc
Remove shortcode file
sarahsanders-docker Oct 30, 2024
6ff407a
Updates for roles and permissions guide
sarahsanders-docker Oct 30, 2024
e3f66db
scout: scout-cli v1.14.0 release notes
dvdksn Oct 31, 2024
0738932
vendor: github.com/docker/scout-cli v1.15.0
dvdksn Oct 31, 2024
9b16732
Update content/manuals/subscription/build-cloud/manage-seats.md
sarahsanders-docker Oct 31, 2024
bbccd37
docs: update a link in alternative-runtimes.md
miroim Nov 4, 2024
60f1dac
Merge pull request #21324 from miroim/update_docs_link
dvdksn Nov 4, 2024
8dd2476
Update features-benefits.md to fix typos (#21308)
jsf5 Nov 4, 2024
158beac
get-started: simplify workshop intro, update node version
dvdksn Oct 31, 2024
47ffcff
get-started: fix/simplify the persisting data experiment
dvdksn Oct 31, 2024
43d7587
[fix] replace hard-coded value: container image name
yuto-kimura-g Nov 4, 2024
277acab
Merge pull request #21327 from yuto-kimura-g/fix/container-image-name
dvdksn Nov 4, 2024
a5ec76b
get-started: fix typo in 'what is an image' concept
dvdksn Nov 4, 2024
2e0775c
chore: format the 'what is an image' concept
dvdksn Nov 4, 2024
647b0e6
chore: use relative links in 'what is an image' concept
dvdksn Nov 4, 2024
9338e19
Merge pull request #21293 from sarahsanders-docker/ENGDOCS-2274
sarahsanders-docker Nov 4, 2024
08283b6
Update manage.md
sarahsanders-docker Nov 4, 2024
3015d2c
Merge pull request #21274 from sarahsanders-docker/ENGDOCS-2270
sarahsanders-docker Nov 4, 2024
d466672
scout: scout-cli v1.15.0 release notes
dvdksn Oct 31, 2024
040166a
Merge pull request #21307 from dvdksn/update-getting-started-workshop
dvdksn Nov 5, 2024
7b1deed
Merge pull request #21328 from dvdksn/fix-basics-concepts-typo
dvdksn Nov 5, 2024
66d0b99
Engdocs 2282 (#21326)
aevesdocker Nov 5, 2024
48f3bcc
Merge pull request #21301 from dvdksn/scout-1.15.0
dvdksn Nov 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions _vendor/github.com/docker/scout-cli/docs/scout_cves.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions _vendor/github.com/docker/scout-cli/docs/scout_sbom.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion _vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
# github.com/docker/buildx v0.18.0
# github.com/docker/cli v27.3.2-0.20241008150905-cb3048fbebb1+incompatible
# github.com/docker/compose/v2 v2.30.1
# github.com/docker/scout-cli v1.13.0
# github.com/docker/scout-cli v1.15.0
183 changes: 88 additions & 95 deletions content/get-started/docker-concepts/the-basics/what-is-an-image.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,25 @@ title: What is an image?
weight: 20
keywords: concepts, build, images, container, docker desktop
description: What is an image
aliases:
- /guides/docker-concepts/the-basics/what-is-an-image/
aliases:
- /guides/docker-concepts/the-basics/what-is-an-image/
---

{{< youtube-embed NyvT9REqLe4 >}}

## Explanation

Seeing a [container](./what-is-a-container) is an isolated process, where does it get its files and configuration? How do you share those environments?
Seeing a [container](./what-is-a-container.md) is an isolated process, where does it get its files and configuration? How do you share those environments?

That's where container images come in!

A container image is a standardized package that includes all of the files, binaries, libraries, and configurations to run a container.
That's where container images come in. A container image is a standardized package that includes all of the files, binaries, libraries, and configurations to run a container.

For a [PostgreSQL](https://hub.docker.com/_/postgres) image, that image will package the database binaries, config files, and other dependencies. For a Python web app, it'll include the Python runtime, your app code, and all of its dependencies.

There are two important principles of images:

1. Images are immutable. Once an image is created, it can't be modified. You can only make a new image or add changes on top of it.

2. Container images are composed of layers. Each layer represented a set of file system changes that add, remove, or modify files.
2. Container images are composed of layers. Each layer represents a set of file system changes that add, remove, or modify files.

These two principles let you to extend or add to existing images. For example, if you are building a Python app, you can start from the [Python image](https://hub.docker.com/_/python) and add additional layers to install your app's dependencies and add your code. This lets you focus on your app, rather than Python itself.

Expand All @@ -50,19 +48,18 @@ In this hands-on, you will learn how to search and pull a container image using

1. Open the Docker Desktop Dashboard and select the **Images** view in the left-hand navigation menu.

![A screenshot of the Docker Desktop Dashboard showing the image view on the left sidebar](images/click-image.webp?border=true&w=1050&h=400)
![A screenshot of the Docker Desktop Dashboard showing the image view on the left sidebar](images/click-image.webp?border=true&w=1050&h=400)

2. Select the **Search images to run** button. If you don't see it, select the _global search bar_ at the top of the screen.

![A screenshot of the Docker Desktop Dashboard showing the search ta](images/search-image.webp?border)
![A screenshot of the Docker Desktop Dashboard showing the search ta](images/search-image.webp?border)

3. In the **Search** field, enter "welcome-to-docker". Once the search has completed, select the `docker/welcome-to-docker` image.

![A screenshot of the Docker Desktop Dashboard showing the search results for the docker/welcome-to-docker image](images/select-image.webp?border=true&w=1050&h=400)
![A screenshot of the Docker Desktop Dashboard showing the search results for the docker/welcome-to-docker image](images/select-image.webp?border=true&w=1050&h=400)

4. Select **Pull** to download the image.


### Learn about the image

Once you have an image downloaded, you can learn quite a few details about the image either through the GUI or the CLI.
Expand All @@ -71,13 +68,11 @@ Once you have an image downloaded, you can learn quite a few details about the i

2. Select the **docker/welcome-to-docker** image to open details about the image.

![A screenshot of the Docker Desktop Dashboard showing the images view with an arrow pointing to the docker/welcome-to-docker image](images/pulled-image.webp?border=true&w=1050&h=400)
![A screenshot of the Docker Desktop Dashboard showing the images view with an arrow pointing to the docker/welcome-to-docker image](images/pulled-image.webp?border=true&w=1050&h=400)

3. The image details page presents you with information regarding the layers of the image, the packages and libraries installed in the image, and any discovered vulnerabilities.

![A screenshot of the image details view for the docker/welcome-to-docker image](images/image-layers.webp?border=true&w=1050&h=400)


![A screenshot of the image details view for the docker/welcome-to-docker image](images/image-layers.webp?border=true&w=1050&h=400)

{{< /tab >}}

Expand All @@ -87,103 +82,101 @@ Follow the instructions to search and pull a Docker image using CLI to view its

### Search for and download an image

1. Open a terminal and search for images using the [`docker search`](/reference/cli/docker/search/) command:

```console
docker search docker/welcome-to-docker
```
1. Open a terminal and search for images using the [`docker search`](/reference/cli/docker/search.md) command:

You will see output like the following:
```console
docker search docker/welcome-to-docker
```

```console
NAME DESCRIPTION STARS OFFICIAL
docker/welcome-to-docker Docker image for new users getting started w… 20
```
You will see output like the following:

This output shows you information about relevant images available on Docker Hub.
```console
NAME DESCRIPTION STARS OFFICIAL
docker/welcome-to-docker Docker image for new users getting started w… 20
```

2. Pull the image using the [`docker pull`](/reference/cli/docker/image/pull/) command.
This output shows you information about relevant images available on Docker Hub.

```console
docker pull docker/welcome-to-docker
```
2. Pull the image using the [`docker pull`](/reference/cli/docker/image/pull.md) command.

You will see output like the following:
```console
docker pull docker/welcome-to-docker
```

```console
Using default tag: latest
latest: Pulling from docker/welcome-to-docker
579b34f0a95b: Download complete
d11a451e6399: Download complete
1c2214f9937c: Download complete
b42a2f288f4d: Download complete
54b19e12c655: Download complete
1fb28e078240: Download complete
94be7e780731: Download complete
89578ce72c35: Download complete
Digest: sha256:eedaff45e3c78538087bdd9dc7afafac7e110061bbdd836af4104b10f10ab693
Status: Downloaded newer image for docker/welcome-to-docker:latest
docker.io/docker/welcome-to-docker:latest
```
You will see output like the following:

Each of line represents a different downloaded layer of the image. Remember that each layer is a set of filesystem changes and provides functionality of the image.
```console
Using default tag: latest
latest: Pulling from docker/welcome-to-docker
579b34f0a95b: Download complete
d11a451e6399: Download complete
1c2214f9937c: Download complete
b42a2f288f4d: Download complete
54b19e12c655: Download complete
1fb28e078240: Download complete
94be7e780731: Download complete
89578ce72c35: Download complete
Digest: sha256:eedaff45e3c78538087bdd9dc7afafac7e110061bbdd836af4104b10f10ab693
Status: Downloaded newer image for docker/welcome-to-docker:latest
docker.io/docker/welcome-to-docker:latest
```

Each of line represents a different downloaded layer of the image. Remember that each layer is a set of filesystem changes and provides functionality of the image.

### Learn about the image

1. List your downloaded images using the [`docker image ls`](/reference/cli/docker/image/ls/) command:

```console
docker image ls
```
1. List your downloaded images using the [`docker image ls`](/reference/cli/docker/image/ls.md) command:

You will see output like the following:
```console
docker image ls
```

```console
REPOSITORY TAG IMAGE ID CREATED SIZE
docker/welcome-to-docker latest eedaff45e3c7 4 months ago 29.7MB
```
You will see output like the following:

The command shows a list of Docker images currently available on your system. The `docker/welcome-to-docker` has a total size of approximately 29.7MB.
```console
REPOSITORY TAG IMAGE ID CREATED SIZE
docker/welcome-to-docker latest eedaff45e3c7 4 months ago 29.7MB
```

> **Image size**
>
> The image size represented here reflects the uncompressed size of the image, not the download size of the layers.
The command shows a list of Docker images currently available on your system. The `docker/welcome-to-docker` has a total size of approximately 29.7MB.

2. List the image's layers using the [`docker image history`](/reference/cli/docker/image/history/) command:
> **Image size**
>
> The image size represented here reflects the uncompressed size of the image, not the download size of the layers.

```console
docker image history docker/welcome-to-docker
```
2. List the image's layers using the [`docker image history`](/reference/cli/docker/image/history.md) command:

You will see output like the following:
```console
docker image history docker/welcome-to-docker
```

```console
IMAGE CREATED CREATED BY SIZE COMMENT
648f93a1ba7d 4 months ago COPY /app/build /usr/share/nginx/html # buil… 1.6MB buildkit.dockerfile.v0
<missing> 5 months ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
<missing> 5 months ago /bin/sh -c #(nop) STOPSIGNAL SIGQUIT 0B
<missing> 5 months ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 5 months ago /bin/sh -c #(nop) ENTRYPOINT ["/docker-entr… 0B
<missing> 5 months ago /bin/sh -c #(nop) COPY file:9e3b2b63db9f8fc7… 4.62kB
<missing> 5 months ago /bin/sh -c #(nop) COPY file:57846632accc8975… 3.02kB
<missing> 5 months ago /bin/sh -c #(nop) COPY file:3b1b9915b7dd898a… 298B
<missing> 5 months ago /bin/sh -c #(nop) COPY file:caec368f5a54f70a… 2.12kB
<missing> 5 months ago /bin/sh -c #(nop) COPY file:01e75c6dd0ce317d… 1.62kB
<missing> 5 months ago /bin/sh -c set -x && addgroup -g 101 -S … 9.7MB
<missing> 5 months ago /bin/sh -c #(nop) ENV PKG_RELEASE=1 0B
<missing> 5 months ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.25.3 0B
<missing> 5 months ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
<missing> 5 months ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
<missing> 5 months ago /bin/sh -c #(nop) ADD file:ff3112828967e8004… 7.66MB
```
You will see output like the following:

This output shows you all of the layers, their sizes, and the command used to create the layer.
```console
IMAGE CREATED CREATED BY SIZE COMMENT
648f93a1ba7d 4 months ago COPY /app/build /usr/share/nginx/html # buil… 1.6MB buildkit.dockerfile.v0
<missing> 5 months ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B
<missing> 5 months ago /bin/sh -c #(nop) STOPSIGNAL SIGQUIT 0B
<missing> 5 months ago /bin/sh -c #(nop) EXPOSE 80 0B
<missing> 5 months ago /bin/sh -c #(nop) ENTRYPOINT ["/docker-entr… 0B
<missing> 5 months ago /bin/sh -c #(nop) COPY file:9e3b2b63db9f8fc7… 4.62kB
<missing> 5 months ago /bin/sh -c #(nop) COPY file:57846632accc8975… 3.02kB
<missing> 5 months ago /bin/sh -c #(nop) COPY file:3b1b9915b7dd898a… 298B
<missing> 5 months ago /bin/sh -c #(nop) COPY file:caec368f5a54f70a… 2.12kB
<missing> 5 months ago /bin/sh -c #(nop) COPY file:01e75c6dd0ce317d… 1.62kB
<missing> 5 months ago /bin/sh -c set -x && addgroup -g 101 -S … 9.7MB
<missing> 5 months ago /bin/sh -c #(nop) ENV PKG_RELEASE=1 0B
<missing> 5 months ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.25.3 0B
<missing> 5 months ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B
<missing> 5 months ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
<missing> 5 months ago /bin/sh -c #(nop) ADD file:ff3112828967e8004… 7.66MB
```

> **Viewing the full command**
>
> If you add the `--no-trunc` flag to the command, you will see the full command. Note that, since the output is in a table-like format, longer commands will cause the output to be very difficult to navigate.
This output shows you all of the layers, their sizes, and the command used to create the layer.

> **Viewing the full command**
>
> If you add the `--no-trunc` flag to the command, you will see the full command. Note that, since the output is in a table-like format, longer commands will cause the output to be very difficult to navigate.

{{< /tab >}}
{{< /tabs >}}
Expand All @@ -194,12 +187,12 @@ In this walkthrough, you searched and pulled a Docker image. In addition to pull

The following resources will help you learn more about exploring, finding, and building images:

- [Docker Trusted Content](/trusted-content/)
- [Docker Official Images docs](/trusted-content/official-images/)
- [Docker Verified Publisher docs](/trusted-content/dvp-program/)
- [Docker-Sponsored Open Source Program docs](/trusted-content/dsos-program/)
- [Explore the Image view in Docker Desktop](/desktop/use-desktop/images/)
- [Packaging your software](/build/building/packaging/)
- [Docker Trusted Content](/manuals/trusted-content/_index.md)
- [Docker Official Images docs](/manuals/trusted-content/official-images/_index.md)
- [Docker Verified Publisher docs](/manuals/trusted-content/dvp-program.md)
- [Docker-Sponsored Open Source Program docs](/manuals/trusted-content/dsos-program.md)
- [Explore the Image view in Docker Desktop](/manuals/desktop/use-desktop/images.md)
- [Docker Build overview](/manuals/build/concepts/overview.md)
- [Docker Hub](https://hub.docker.com)

## Next steps
Expand Down
Loading
Loading