Transferring Files Between host and container
With the SSH port, we can easily copy files between host and container.
For GNU/Linux and Mac users
You will use the build-in scp tool, and do not need to install an extra one. To copy file from container to host, issue the following command in the host terminal:
scp -P 20022 username@127.0.0.1:SRC_PATH HOST_PATH
where
username
is the user name in Dockerfile. By default, it isics
.SRC_PATH
is the path of the file in container to copyHOST_PATH
is the path of the host to copy to
For example, the following command will copy a file in the container to a host path:
scp -P 20022 ics@127.0.0.1:/home/ics/a.txt .
To copy file from host to container, issue the following command in the host terminal:
scp -P 20022 HOST_SRC_PATH username@127.0.0.1:DEST_PATH
where
HOST_SRC_PATH
is the path of the host file to copyusername
is the user name in Dockerfile. By default, it isics
.DEST_PATH
is the path in the container to copy to
For example, the following command will copy a folder in Windows into the container:
scp -P 20022 hello.c ics@127.0.0.1:/home/ics
For Windows users
Windows has no build-in scp
tool, and you have to download one manually.
Download the latest release version of pscp.exe
here.
Change the current directory of PowerShell to the one with pscp.exe
in it.
Then use the following commands to transfer files.
./pscp -P 20022 username@127.0.0.1:SRC_PATH HOST_PATH
./pscp -P 20022 HOST_SRC_PATH username@127.0.0.1:DEST_PATH
The explanation of these commands is similar to scp
above.
Refer to them for more information.
- New a text file with casual contents in the host.
- Copy the text file to the container.
- Modify the content of the text file in the container.
- Copy the modified file back to the host.
Check whether the content of the modified file you get after the last step is expected. If it is the case, you are done!