Docker is a popular virtualization tool that makes it easy to build, publish, and run applications. It is based on container technology and uses multiple layers to manage various dependencies of the application, which can completely isolate the application and make it more portable and scalable. When using Docker, we often need to copy the file systems of multiple containers. Here we will introduce how Docker copies the file system to facilitate file transfer and sharing between different containers.
1. Use the docker cp command
The Docker command line interface provides a Dockerfile cp command, which can be used to copy files to the inside of the container or copy files from the inside of the container to the local. The usage is as follows:
docker cp [OPTIONS] CONTAINER:SRC_PATH LOCAL_DEST_PATH docker cp [OPTIONS] LOCAL_SRC_PATH CONTAINER:DEST_PATH
where CONTAINER represents the name of the container or the ID of the container; SRC_PATH represents the directory or file in the container, which is connected to the container name through :
; LOCAL_DEST_PATH represents the local file system path, Indicates copying from the container to the local; LOCAL_SRC_PATH indicates the local file system path, indicating copying from the local to the container. We can enter the following command in the terminal to copy the files in the container to the local:
docker cp my-container:/path/to/file /local/destination
This will copy the /path/to/file## in the
my-container container #Copy the file to the
/local/destination directory.
docker cp my-container:/path/to/dir/* /local/destination
/path/to/dir# in the my-container
container ##All files and subfiles in the directory go to the /local/destination
directory. 2. Copy files to other containers in the same network
We often link multiple containers in the same network for service discovery and inter-container communication. In this case, we can use the
docker cp command to copy the files to other containers in the same network. First, we need to know the IP address of the container we want to copy. We can get the IP address of the container by running the following command: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">docker inspect --format '{{ .NetworkSettings.IPAddress }}' CONTAINER_NAME_OR_ID</pre><div class="contentsignin">Copy after login</div></div>
This will return the IP address of the container. We can then copy the files to other containers using the following command:
docker cp /local_path/file.txt CONTAINER_NAME_OR_ID:/path/within/container/
This will copy the local files to other containers in the same network.
3. Copy files to remote Docker host
If we want to copy files to remote Docker host, we need to use SSH. SSH allows us to establish a secure remote connection and run commands within it. First, we need to make sure we have added the SSH key of the remote Docker host we want to connect to our keyring. We can then copy the file using the following command:
docker cp /local_path/filename.txt ssh://user@remotehost:/path/within/container/filename.txt
This will copy the file to the specified directory on the remote host. Please note that when connecting to a remote Docker host via SSH, the user must have sufficient permissions to access the remote host and container.
Summary
Through the above method, we can use the docker cp command to copy the file system to facilitate file transfer and sharing between different containers. With this approach, we can implement many different scenarios, such as copying files from one container to another, copying files from a container to a local, or copying files to a remote Docker host. This makes Docker more flexible in actual use, allowing us to better respond to various needs.
The above is the detailed content of How to copy file system in docker. For more information, please follow other related articles on the PHP Chinese website!