Docker introduction to actual combat (4) docker image

Time:2021-4-7

This article is from Mr. Zhou Yang https://www.bilibili.com/vide…

Introduction to docker (3) common commands of docker

4: Docker image

4.1 what is docker image

Description:Image is a kind of lightweight and executable independent software package, which is used to package software runtime environment and software developed based on runtime environment. It contains all the contents needed to run a software, including code, runtime, library, environment variables and configuration files.

4.1.1 unionfs

Unionfs (Federated file system): unionfs is a layered, lightweight and high-performance file system, which supports the file system modification as a single submission to overlay layer by layer. At the same time, it can mount different directories into a single virtual file system. The union file system is the foundation of docker image. Images can be inherited by layers. Based on the basic image (no parent image), various specific application images can be made.

Features: loading multiple file systems at one time, but only one file system can be seen from the outside. Joint loading will stack the file systems of each layer, so that the final file system will contain all the underlying files and directories

4.1.2 docker image loading principle

Docker image loading principle:

The image of docker is actually composed of file system layer by layer, which is called unionfs.

Bootfs (boot file system) mainly includes bootloader and kernel. Bootloader mainly loads kernel. When Linux starts, bootfs file system will be loaded. The bottom layer of docker image is bootfs. This layer is the same as our typical Linux / unix system, including boot loader and kernel. When the boot is loaded, the whole kernel will be in memory. At this time, the right to use the memory has been transferred from bootfs to the kernel. At this time, the system will also unload bootfs.
Docker introduction to actual combat (4) docker image
For a simplified OS, rootfs can be very small, just including the most basic commands, tools and libraries. Because the bottom layer directly uses the kernel of the host, it only needs to provide rootfs. It can be seen that for different Linux distributions, bootfs are basically the same, and rootfs will be different, so different distributions can share bootfs.

4.1.3 layered image

Take our pull as an example. In the process of downloading, we can see that the image of docker seems to be downloading layer by layer
Docker introduction to actual combat (4) docker image

Why use this layered structure

One of the biggest benefits is sharing resources

For example, if multiple images are constructed from the same base image, the host only needs to save a base image on the disk and load a base image in the memory to serve all containers. And every layer of the image can be shared.

4.2 features of docker image

Docker images are read-only
When the container starts, a new writable layer is loaded on top of the mirror.
This layer is often referred to as the “container layer” and the one below the “container layer” is called the “mirror layer”.

4.3 docker commit operation

Docker commit commits the container copy to make it a new image

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Options Description:
-A: the image author submitted;
-C: use dockerfile command to create image;
-M: explanatory text at the time of submission;
-P: pause the container when commit.

demonstration:

4.3.1 at present, there are three images:

Docker introduction to actual combat (4) docker image

4.3.2 starting Tomcat

Docker introduction to actual combat (4) docker image

Docker introduction to actual combat (4) docker image

4.3.3 add a home page

In the container, webapps creates a root folder
Docker introduction to actual combat (4) docker image

The host creates a index.html
Docker introduction to actual combat (4) docker image

Docker introduction to actual combat (4) docker image

Copy home page from host to container (easier way)Directory mountIt will be in the next chapter
Docker introduction to actual combat (4) docker image

Refresh the page to see your home page
Make complaints about Ali cloud EDS 1M is too slow to refresh for a long time.
Docker introduction to actual combat (4) docker image

4.3.4 the container submitted for modification becomes a new image

Docker introduction to actual combat (4) docker image

4.3.5 publish a container according to the newly generated image

Docker introduction to actual combat (4) docker image
Docker introduction to actual combat (4) docker image

Next

Docker introduction to actual combat (5) docker container data volume