With the widespread use of Docker in application development and cloud computing, many users find that when downloading Docker images and containers, they do not know where these files will be saved. In this article, we will detail the location and method of saving downloaded files in Docker.
The file system structure of downloaded files in Docker
Before understanding the storage location of downloaded files in Docker, you need to first understand the file system structure of Docker images and containers.
The Docker image is a virtual file system that contains the root file system. Docker images use Union FS technology. In the image, the file systems at different layers are read-only, and only the top-most writable layer is writable.
The file structure of the Docker image file system is as follows:
/ # 根目录 |-- bin/ # 可执行文件目录 |-- dev/ # 设备文件目录 |-- etc/ # 配置文件目录 |-- home/ # 用户根目录 |-- lib/ # 库文件目录 |-- media/ # 可移动设备目录 |-- mnt/ # 挂载目录 |-- opt/ # 可选应用程序目录 |-- proc/ # 进程信息目录 |-- root/ # 系统管理员目录 |-- run/ # 运行时文件目录 |-- sbin/ # 系统可执行文件目录 |-- srv/ # 服务目录 |-- sys/ # 系统文件目录 |-- tmp/ # 临时文件目录 |-- usr/ # 用户程序目录 |-- var/ # 可变数据目录 `-- docker/ # Docker自身用目录
When Docker starts the container, it will A read-write writable layer is added to the top of the image to store new files and data needed when the application is running. This writable layer is part of the container's file system.
The file structure of the Docker container file system is as follows:
/ # 根目录 |-- bin/ # 可执行文件目录 |-- dev/ # 设备文件目录 |-- etc/ # 配置文件目录 |-- home/ # 用户根目录 |-- lib/ # 库文件目录 |-- media/ # 可移动设备目录 |-- mnt/ # 挂载目录 |-- opt/ # 可选应用程序目录 |-- proc/ # 进程信息目录 |-- root/ # 系统管理员目录 |-- run/ # 运行时文件目录 |-- sbin/ # 系统可执行文件目录 |-- srv/ # 服务目录 |-- sys/ # 系统文件目录 |-- tmp/ # 临时文件目录 |-- usr/ # 用户程序目录 |-- var/ # 可变数据目录 `-- docker/ # Docker自身用目录
The file storage location downloaded in Docker
The file downloaded in Docker will be saved in the image or container In the writable layer, these files can be used in the container or exported from the container to the host file system.
Here are some examples of file downloads and how to find them.
When running the Docker image, you can use the ADD or COPY instructions in the Dockerfile to add files to the image.
The format of the ADD instruction is:
ADD source destination
where source is a file or directory in the host, and destination is a directory in the Docker image.
The format of the COPY instruction is:
COPY source destination
where source is the file or directory in the host, and destination is the directory in the Docker image.
For example, the following Dockerfile will copy the index.html file from the host to the /var/www directory in the image:
FROM nginx COPY index.html /var/www/
At runtime, you can use Docker's docker inspect command to find this File:
$ docker inspect [imageID] | grep "/var/www/index.html"
There are many ways to download files in Docker containers, including using wget, curl, scp and other commands, or you can Use the ADD and COPY instructions to copy files from the host machine.
Use wget to download files into the container:
$ docker run -it ubuntu wget http://example.com/file.txt
The following are the steps to use wget to download files into the container:
Create an Ubuntu container:
$ docker run -it ubuntu
Install wget:
$ apt-get update $ apt-get install wget
Use wget to download the file:
$ wget http://example.com/file.txt
Use Docker’s docker cp command to copy the file from the container to the host:
$ docker cp [containerID]:/file.txt .
Use curl to download the file To the container:
Take downloading Google's logo as an example:
$ docker run -it ubuntu curl -o google_logo.png https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
Use the ADD and COPY instructions to copy files from the host to the container:
Similar to the image, use Docker's ADD and COPY instructions can also copy files from the host to the container. These files will be saved in a writable layer local to the container.
Here is an example Dockerfile that uses the ADD instruction to copy a file from the host into a container:
FROM ubuntu ADD file.txt /app/
At runtime, you can use Docker's docker inspect command to find this file:
$ docker inspect [containerID] | grep "/app/file.txt"
Summary
Files downloaded in Docker will be saved in the corresponding image or writable layer in the container. Files can be downloaded or copied from the container through Docker instructions or using common tools. Their location and methods are relatively easy to master, so you don't need to worry too much about these issues when using Docker.
The above is the detailed content of Detailed introduction to the location and method of saving downloaded files in Docker. For more information, please follow other related articles on the PHP Chinese website!