Copying files from Docker container to host
Asked Answered
S

27

2853

I'm thinking of using Docker to build my dependencies on a Continuous Integration (CI) server, so that I don't have to install all the runtimes and libraries on the agents themselves.

To achieve this I would need to copy the build artifacts that are built inside the container back into the host. Is that possible?

Spontaneity answered 26/2, 2014 at 17:46 Comment(3)
with latest version of docker , you can use the buildkit --output option DOCKER_BUILDKIT=1 docker build -f Dockerfile --target=testresult --output out github.com/moby/buildkit#local-directorySordello
Just to add to Alex's answer: DOCKER_BUILDKIT=1 is an environment setting - to use buildkit as the build engine you must have DOCKER_BUILDKIT set to 1. More info on Docker's website: docs.docker.com/engine/reference/builder/#buildkitRacoon
Just adding the directory I was trying to access to the volumes section of docker-compose.yml ended up working great for me: - ./srv/reports:/srv/reports:delegatedAcriflavine
L
4603

In order to copy a file from a container to the host, you can use the command

docker cp <containerId>:/file/path/within/container /host/path/target

Here's an example:

$ sudo docker cp goofy_roentgen:/out_read.jpg .

Here goofy_roentgen is the container name I got from the following command:

$ sudo docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
1b4ad9311e93        bamos/openface      "/bin/bash"         33 minutes ago      Up 33 minutes       0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp   goofy_roentgen

You can also use (part of) the Container ID. The following command is equivalent to the first

$ sudo docker cp 1b4a:/out_read.jpg .
Lithuanian answered 26/2, 2014 at 18:31 Comment(15)
Here's a handy way to get at your latest container if you're simply using docker for a temp Linux environment: docker ps -alq.Aerodontia
this cp command works as-is for copying directory trees as well (not just a single file).Crandall
This solution works in case for non-root docker user, who can't sudo in docker.Cahoot
In newer versions of docker you can copy bidirectionally (host to container or container to host) with docker cp ...Collate
I needed docker cp -L to copy symlinksCaution
As of docker 1.11.2, if you copy from one container to another directly, you get the error message copying between containers is not supported.Brewmaster
NOTE: the container does not have to be running to use the cp command. Handy if your container constantly crashes.Rabinowitz
It's better to use the last version of docker commands. docker container ...Teresitateressa
I couldn't copy a file using ~/path, I had to use the full path (/root/path) (you can get it with the pwd command)Dulin
getting this error Error response from daemon: error processing tar file: docker-tar: relocation error: /lib/x86_64-linux-gnu/libnss_files.so.2: symbol __libc_readline_unlocked, version GLIBC_PRIVATE not defined in file libc.so.6 with link time referenceZorn
Also works using name and/or tags, instead of idsBun
How about if I want to do the same from inside the container?Aurist
@Mansi i don't think it's possible to do that, the host should have control over the containers, not the other way around, but if you really wanna do that, you can set it up with github actions.Dejesus
I tried this, and it works but it seems it does not support doing something like *.txt to get all txt files. How can we do this?Recitativo
@Recitativo You can first find/list all the files in the directory, then build a command to copy each one. E.g., run ls -al | grep .txt, copy the output into a file and add the copy command around each filename. You could also just use Bash-foo to do it.Cardwell
F
713

You do not need to use docker run.

You can do it with docker create.

From the docs:

The docker create command creates a writeable container layer over the specified image and prepares it for running the specified command. The container ID is then printed to STDOUT. This is similar to docker run -d except the container is never started.

So, you can do:

docker create --name dummy IMAGE_NAME
docker cp dummy:/path/to/file /dest/to/file
docker rm -f dummy

Here, you never start the container. That looked beneficial to me.

Fennel answered 5/7, 2018 at 8:25 Comment(9)
This needs more upvotes. Great for when you just need to build something in a container and then copy the outputs.Bobbobb
@HonzaKalfus I agree this needs to be higher. This is exactly what I was after. I used this so that I could build some binary files using a known environment (amazon linux at a specific version). was able to make a shell script that fully built the docker and extracted the resultant binary from it! Perfect.Pontus
Is -ti required and bash required?Swagsman
@jII, I had done it because later on, I do docker run on it. In simple cases, it is not needed but it doesn't harm here too.Fennel
This answer is great for build pipelines like in Azure so you don't have to try and find out what the container id ended up being.Basra
Perfect solution for me as I was using this as a build medium for my angular app during the deployment process and works like a charm. Should be accepted answer.Croquet
@jll it is not required container=$(docker create ${IMAGE_TAG}) will give you a container id and then you can do docker cp ${container}:/src-path ./dst-path/Fi
Can you use wildcard to copy multiple files from the container? I don't get that to work. –Assumptive
Could this be used to build node_modules to avoid 'invalid ELF' errors?Gallice
C
118

Mount a "volume" and copy the artifacts into there:

mkdir artifacts
docker run -i -v ${PWD}/artifacts:/artifacts ubuntu:14.04 sh << COMMANDS
# ... build software here ...
cp <artifact> /artifacts
# ... copy more artifacts into `/artifacts` ...
COMMANDS

Then when the build finishes and the container is no longer running, it has already copied the artifacts from the build into the artifacts directory on the host.

Edit

Caveat: When you do this, you may run into problems with the user id of the docker user matching the user id of the current running user. That is, the files in /artifacts will be shown as owned by the user with the UID of the user used inside the docker container. A way around this may be to use the calling user's UID:

docker run -i -v ${PWD}:/working_dir -w /working_dir -u $(id -u) \
    ubuntu:14.04 sh << COMMANDS
# Since $(id -u) owns /working_dir, you should be okay running commands here
# and having them work. Then copy stuff into /working_dir/artifacts .
COMMANDS
Canossa answered 1/10, 2014 at 20:58 Comment(1)
Actually you can use chown command to match user id and group id on the host machine.Shoer
M
55
docker cp containerId:source_path destination_path

containerId can be obtained from the command docker ps -a

source path should be absolute. for example, if the application/service directory starts from the app in your docker container the path would be /app/some_directory/file

example: docker cp d86844abc129:/app/server/output/server-test.png C:/Users/someone/Desktop/output

Mccarter answered 10/2, 2021 at 7:18 Comment(0)
P
50

From DockerContainer To LocalMachine

$docker cp containerId:/sourceFilePath/someFile.txt C:/localMachineDestinationFolder

From LocalMachine To DockerContainer

$docker cp C:/localMachineSourceFolder/someFile.txt containerId:/containerDestinationFolder
Patmore answered 2/11, 2021 at 12:35 Comment(3)
It also works the same on LinuxSchauer
Can you use wildcard to copy multiple files from the container? I don't get that to work.Assumptive
To get the container Id run docker ps -aqf "name=ImageName", or docker ps -aqf "name=^ImageName$" with regex anchors to match the exact name. `Polecat
T
44

TLDR;

$ docker run --rm -iv${PWD}:/host-volume my-image sh -s <<EOF
chown $(id -u):$(id -g) my-artifact.tar.xz
cp -a my-artifact.tar.xz /host-volume
EOF

Description

docker run with a host volume, chown the artifact, cp the artifact to the host volume:

$ docker build -t my-image - <<EOF
> FROM busybox
> WORKDIR /workdir
> RUN touch foo.txt bar.txt qux.txt
> EOF
Sending build context to Docker daemon  2.048kB
Step 1/3 : FROM busybox
 ---> 00f017a8c2a6
Step 2/3 : WORKDIR /workdir
 ---> Using cache
 ---> 36151d97f2c9
Step 3/3 : RUN touch foo.txt bar.txt qux.txt
 ---> Running in a657ed4f5cab
 ---> 4dd197569e44
Removing intermediate container a657ed4f5cab
Successfully built 4dd197569e44

$ docker run --rm -iv${PWD}:/host-volume my-image sh -s <<EOF
chown -v $(id -u):$(id -g) *.txt
cp -va *.txt /host-volume
EOF
changed ownership of '/host-volume/bar.txt' to 10335:11111
changed ownership of '/host-volume/qux.txt' to 10335:11111
changed ownership of '/host-volume/foo.txt' to 10335:11111
'bar.txt' -> '/host-volume/bar.txt'
'foo.txt' -> '/host-volume/foo.txt'
'qux.txt' -> '/host-volume/qux.txt'

$ ls -n
total 0
-rw-r--r-- 1 10335 11111 0 May  7 18:22 bar.txt
-rw-r--r-- 1 10335 11111 0 May  7 18:22 foo.txt
-rw-r--r-- 1 10335 11111 0 May  7 18:22 qux.txt

This trick works because the chown invocation within the heredoc the takes $(id -u):$(id -g) values from outside the running container; i.e., the docker host.

The benefits are:

  • you don't have to docker container run --name or docker container create --name before
  • you don't have to docker container rm after
Thornburg answered 7/5, 2017 at 15:54 Comment(1)
Upvoted for the comparison between cp and volume-based answers. Also, for the id trick for ownership, that is a real headache sometimesThanh
S
35

Mount a volume, copy the artifacts, adjust owner id and group id:

mkdir artifacts
docker run -i --rm -v ${PWD}/artifacts:/mnt/artifacts centos:6 /bin/bash << COMMANDS
ls -la > /mnt/artifacts/ls.txt
echo Changing owner from \$(id -u):\$(id -g) to $(id -u):$(id -g)
chown -R $(id -u):$(id -g) /mnt/artifacts
COMMANDS

EDIT: Note that some of the commands like $(id -u) are backslashed and will therefore be processed within the container, while the ones that are not backslashed will be processed by the shell being run in the host machine BEFORE the commands are sent to the container.

Shoer answered 30/3, 2015 at 15:28 Comment(1)
Edited to add a clarification of something I almost missed. BTW I'm not sure why you're changing it to user:user instead of user:group but otherwise looks good!Theatrical
P
28

For anyone trying to do this with a MySQL container and storing the volumes locally on your machine. I used the syntax that was provided in the top rated reply to this question. But had to use a specific path that's specific to MySQL

docker cp containerIdHere:/var/lib/mysql pathToYourLocalMachineHere
Perice answered 27/4, 2022 at 13:32 Comment(2)
Wouldn't it be containerIdHere istead of imageIdHere?Eastman
You can also use the name of the container instead of the ID. When you input docker ps it's the value in the column NAMES. You can set it in the file docker-compose.yml to whatever you like, and it's much easier to memorise and to type, and it's independent of how often you've rebuilt your container.Cupriferous
F
27

Most of the answers do not indicate that the container must run before docker cp will work:

docker build -t IMAGE_TAG .
docker run -d IMAGE_TAG
CONTAINER_ID=$(docker ps -alq)
# If you do not know the exact file name, you'll need to run "ls"
# FILE=$(docker exec CONTAINER_ID sh -c "ls /path/*.zip")
docker cp $CONTAINER_ID:/path/to/file .
docker stop $CONTAINER_ID
Fonsie answered 5/4, 2018 at 5:40 Comment(1)
BTW, Whether the container must/may be running/stopped/either seems to depend on type of host/virtualization-technique. Current docker doc says "The CONTAINER can be a running or stopped container.". Multiple places on SO, including a comment on the accepted answer, say "this also works on a stopped container". Under Windows Hyper-V, it is apparently necessary to stop container before copying a file.Aedes
E
22

If you don't have a running container, just an image, and assuming you want to copy just a text file, you could do something like this:

docker run the-image cat path/to/container/file.txt > path/to/host/file.txt
Eyelash answered 9/11, 2017 at 23:6 Comment(1)
This would copy the file from one spot in the container to somewhere else in the container. Unless you mount a folder from the host as a volume, in which case path after > would not necessarily be the path on the host.Moulmein
W
20

With the release of Docker 19.03, you can skip creating the container and even building an image. There's an option with BuildKit based builds to change the output destination. You can use this to write the results of the build to your local directory rather than into an image. E.g. here's a build of a go binary:

$ ls
Dockerfile  go.mod  main.go

$ cat Dockerfile
FROM golang:1.12-alpine as dev
RUN apk add --no-cache git ca-certificates
RUN adduser -D appuser
WORKDIR /src
COPY . /src/
CMD CGO_ENABLED=0 go build -o app . && ./app

FROM dev as build
RUN CGO_ENABLED=0 go build -o app .
USER appuser
CMD [ "./app" ]

FROM scratch as release
COPY --from=build /etc/passwd /etc/group /etc/
COPY --from=build /src/app /app
USER appuser
CMD [ "/app" ]

FROM scratch as artifact
COPY --from=build /src/app /app

FROM release

From the above Dockerfile, I'm building the artifact stage that only includes the files I want to export. And the newly introduced --output flag lets me write those to a local directory instead of an image. This needs to be performed with the BuildKit engine that ships with 19.03:

$ DOCKER_BUILDKIT=1 docker build --target artifact --output type=local,dest=. .
[+] Building 43.5s (12/12) FINISHED
 => [internal] load build definition from Dockerfile                                                                              0.7s
 => => transferring dockerfile: 572B                                                                                              0.0s
 => [internal] load .dockerignore                                                                                                 0.5s
 => => transferring context: 2B                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/golang:1.12-alpine                                                             0.9s
 => [dev 1/5] FROM docker.io/library/golang:1.12-alpine@sha256:50deab916cce57a792cd88af3479d127a9ec571692a1a9c22109532c0d0499a0  22.5s
 => => resolve docker.io/library/golang:1.12-alpine@sha256:50deab916cce57a792cd88af3479d127a9ec571692a1a9c22109532c0d0499a0       0.0s
 => => sha256:1ec62c064901392a6722bb47a377c01a381f4482b1ce094b6d28682b6b6279fd 155B / 155B                                        0.3s
 => => sha256:50deab916cce57a792cd88af3479d127a9ec571692a1a9c22109532c0d0499a0 1.65kB / 1.65kB                                    0.0s
 => => sha256:2ecd820bec717ec5a8cdc2a1ae04887ed9b46c996f515abc481cac43a12628da 1.36kB / 1.36kB                                    0.0s
 => => sha256:6a17089e5a3afc489e5b6c118cd46eda66b2d5361f309d8d4b0dcac268a47b13 3.81kB / 3.81kB                                    0.0s
 => => sha256:89d9c30c1d48bac627e5c6cb0d1ed1eec28e7dbdfbcc04712e4c79c0f83faf17 2.79MB / 2.79MB                                    0.6s
 => => sha256:8ef94372a977c02d425f12c8cbda5416e372b7a869a6c2b20342c589dba3eae5 301.72kB / 301.72kB                                0.4s
 => => sha256:025f14a3d97f92c07a07446e7ea8933b86068d00da9e252cf3277e9347b6fe69 125.33MB / 125.33MB                               13.7s
 => => sha256:7047deb9704134ff71c99791be3f6474bb45bc3971dde9257ef9186d7cb156db 125B / 125B                                        0.8s
 => => extracting sha256:89d9c30c1d48bac627e5c6cb0d1ed1eec28e7dbdfbcc04712e4c79c0f83faf17                                         0.2s
 => => extracting sha256:8ef94372a977c02d425f12c8cbda5416e372b7a869a6c2b20342c589dba3eae5                                         0.1s
 => => extracting sha256:1ec62c064901392a6722bb47a377c01a381f4482b1ce094b6d28682b6b6279fd                                         0.0s
 => => extracting sha256:025f14a3d97f92c07a07446e7ea8933b86068d00da9e252cf3277e9347b6fe69                                         5.2s
 => => extracting sha256:7047deb9704134ff71c99791be3f6474bb45bc3971dde9257ef9186d7cb156db                                         0.0s
 => [internal] load build context                                                                                                 0.3s
 => => transferring context: 2.11kB                                                                                               0.0s
 => [dev 2/5] RUN apk add --no-cache git ca-certificates                                                                          3.8s
 => [dev 3/5] RUN adduser -D appuser                                                                                              1.7s
 => [dev 4/5] WORKDIR /src                                                                                                        0.5s
 => [dev 5/5] COPY . /src/                                                                                                        0.4s
 => [build 1/1] RUN CGO_ENABLED=0 go build -o app .                                                                              11.6s
 => [artifact 1/1] COPY --from=build /src/app /app                                                                                0.5s
 => exporting to client                                                                                                           0.1s
 => => copying files 10.00MB                                                                                                      0.1s

After the build was complete the app binary was exported:

$ ls
Dockerfile  app  go.mod  main.go

$ ./app
Ready to receive requests on port 8080

Docker has other options to the --output flag documented in their upstream BuildKit repo: https://github.com/moby/buildkit#output

Wounded answered 7/11, 2019 at 15:48 Comment(3)
standard build cache not used for build with output, it's badMartingale
@Martingale Buildkit is a different builder, using a different cache environment. It's much more cache efficient.Wounded
It helps use the container to build the binary and release it to the local host.Dowry
B
12

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH to copy from the container to the host machine.

e.g. docker cp test:/opt/file1 /etc/

For Vice-Versa:

docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH to copy from host machine to container.

Boehike answered 9/3, 2022 at 5:47 Comment(0)
S
10

I am posting this for anyone that is using Docker for Mac. This is what worked for me:

 $ mkdir mybackup # local directory on Mac

 $ docker run --rm --volumes-from <containerid> \
    -v `pwd`/mybackup:/backup \  
    busybox \                   
    cp /data/mydata.txt /backup 

Note that when I mount using -v that backup directory is automatically created.

I hope this is useful to someone someday. :)

Subaxillary answered 17/1, 2017 at 8:10 Comment(2)
If you use docker-compose, volumes-from is deprecated in version 3 and after.Amberjack
To add to mulg0r's comment, see https://mcmap.net/q/40822/-docker-compose-volumes_from-usage-example - in v.3, you place a volumes command at root of config.yml, for volumes to be accessible by multiple containers.Aedes
C
9

Another good option is first build the container and then run it using the -c flag with the shell interpreter to execute some commands:

docker run --rm -i -v <host_path>:<container_path> <mydockerimage> /bin/sh -c "cp -r /tmp/homework/* <container_path>"

The above command does this:

-i = run the container in interactive mode.

--rm = removed the container after the execution.

-v = shared a folder as volume from your host path to the container path.

Finally, the /bin/sh -c lets you introduce a command as a parameter and that command will copy your homework files to the container path.

Candleberry answered 26/1, 2020 at 0:12 Comment(0)
C
7
docker run -dit --rm IMAGE
docker cp CONTAINER:SRC_PATH DEST_PATH

https://docs.docker.com/engine/reference/commandline/run/ https://docs.docker.com/engine/reference/commandline/cp/

Cooper answered 16/5, 2018 at 2:55 Comment(0)
B
7

I used PowerShell (Admin) with this command.

docker cp {container id}:{container path}/error.html  C:\\error.html

Example

docker cp ff3a6608467d:/var/www/app/error.html  C:\\error.html
Barrier answered 6/11, 2018 at 9:38 Comment(0)
M
7
sudo docker cp <running_container_id>:<full_file_path_in_container> <path_on_local_machine>

Example:

sudo docker cp d8a17dfc455f:/tests/reports /home/acbcb/Documents/abc
Melodimelodia answered 7/1, 2021 at 5:39 Comment(0)
P
6

If you just want to pull a file from an image (instead of a running container) you can do this:

docker run --rm <image> cat <source> > <local_dest>

This will bring up the container, write the new file, then remove the container. One drawback, however, is that the file permissions and modified date will not be preserved.

Permission answered 30/12, 2017 at 4:6 Comment(0)
F
5

The easiest way is to just create a container, get the ID, and then copy from there

IMAGE_TAG=my-image-tag
container=$(docker create ${IMAGE_TAG})
docker cp ${container}:/src-path ./dst-path/
Fi answered 26/2, 2022 at 4:11 Comment(0)
M
4

As a more general solution, there's a CloudBees plugin for Jenkins to build inside a Docker container. You can select an image to use from a Docker registry or define a Dockerfile to build and use.

It'll mount the workspace into the container as a volume (with appropriate user), set it as your working directory, do whatever commands you request (inside the container). You can also use the docker-workflow plugin (if you prefer code over UI) to do this, with the image.inside() {} command.

Basically all of this, baked into your CI/CD server and then some.

Markswoman answered 13/9, 2015 at 4:39 Comment(0)
S
3

Create a data directory on the host system (outside the container) and mount this to a directory visible from inside the container. This places the files in a known location on the host system, and makes it easy for tools and applications on the host system to access the files

docker run -d -v /path/to/Local_host_dir:/path/to/docker_dir docker_image:tag
Schist answered 16/5, 2017 at 16:29 Comment(2)
That lets you inject a directory and it's contents from the host into the container. It doesn't let you copy files from the container back out to the host.Wounded
It does if the host folder has very wide permissions?Paraboloid
D
3

This can also be done in the SDK for example python. If you already have a container built you can lookup the name via console ( docker ps -a ) name seems to be some concatenation of a scientist and an adjective (i.e. "relaxed_pasteur").

Check out help(container.get_archive) :

Help on method get_archive in module docker.models.containers:

get_archive(path, chunk_size=2097152) method of docker.models.containers.Container instance
    Retrieve a file or folder from the container in the form of a tar
    archive.

    Args:
        path (str): Path to the file or folder to retrieve
        chunk_size (int): The number of bytes returned by each iteration
            of the generator. If ``None``, data will be streamed as it is
            received. Default: 2 MB

    Returns:
        (tuple): First element is a raw tar data stream. Second element is
        a dict containing ``stat`` information on the specified ``path``.

    Raises:
        :py:class:`docker.errors.APIError`
            If the server returns an error.

    Example:

        >>> f = open('./sh_bin.tar', 'wb')
        >>> bits, stat = container.get_archive('/bin/sh')
        >>> print(stat)
        {'name': 'sh', 'size': 1075464, 'mode': 493,
         'mtime': '2018-10-01T15:37:48-07:00', 'linkTarget': ''}
        >>> for chunk in bits:
        ...    f.write(chunk)
        >>> f.close()

So then something like this will pull out from the specified path ( /output) in the container to your host machine and unpack the tar.

import docker
import os
import tarfile

# Docker client
client = docker.from_env()
#container object
container = client.containers.get("relaxed_pasteur")
#setup tar to write bits to
f = open(os.path.join(os.getcwd(),"output.tar"),"wb")
#get the bits
bits, stat = container.get_archive('/output')
#write the bits
for chunk in bits:
    f.write(chunk)
f.close()
#unpack
tar = tarfile.open("output.tar")
tar.extractall()
tar.close()
Diacid answered 14/1, 2020 at 23:43 Comment(0)
C
2
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

The DEST_PATH must be pre-exist.

Cheryllches answered 26/2, 2014 at 17:47 Comment(0)
M
1

In your Docker run command, you can mount one folder locally to a directory within your Docker container using the bind type.

For example, if you wanted to run a Jupyter Notebook Server in Docker you could use the command:

docker run -it --mount type=bind,source="$(pwd)/generatedDataLocal",target="/generatedDataInDocker" -p 10000:8888 jupyter/scipy-notebook:2023-02-28

Where source=$(pwd)/generatedDataLocal specifies your host computer in the current directory where the docker command is being run and /generatedDataLocal is simply a sub-directory under it, and target="/generatedDataInDocker" specifies a /generatedDataInDocker directory created inside the Docker container.

Files you create or modify in the /generatedDataInDocker directory of the Docker container will be automatically accessible in your local $(pwd)/generatedDataLocal directory. Conversely, if you add a file for example to the local $(pwd)/generatedDataLocal directory, it is accessible within the /generatedDataInDocker directory of the Docker container.

If you are generating a STATA file from a Pandas dataframe within your Jupyter Notebook, for example:

df.to_stata('/generatedDataInDocker/myStataFileEx1.dta', version=118) 

..the myStataFileEx1.dta file would be available locally from within the generatedDataLocal directory (outside of the Docker container).

Microgroove answered 23/1, 2019 at 16:13 Comment(0)
F
1

If you use podman/buildah1, it offers greater flexibility for copying files from a container to the host because it allows you to mount the container.

After you create the container as in this answer

podman create --name dummy IMAGE_NAME

Now we can mount the entire container, and then we use the cp utility found in almost every linux box to copy the contents of /etc/foobar from the container (dummy), into /tmp on our host machine. All this can be done rootless. Observe:

$ podman unshare -- bash -c '
  mnt=$(podman mount dummy)
  cp -R ${mnt}/etc/foobar /tmp
  podman umount dummy
'

1. podman uses buildah internally, and they also share almost the same api

Felt answered 21/4, 2021 at 9:10 Comment(0)
H
1

if you need a small file, you can use this section

Docker container inside

docker run -it -p 4122:4122 <container_ID>

nc -l -p 4122 < Output.txt

Host machine

nc 127.0.0.1 4122 > Output.txt
Heterocyclic answered 21/9, 2021 at 22:23 Comment(0)
M
0

Create a path where you want to copy the file and then use:

docker run -d -v hostpath:dockerimag
Matthieu answered 29/6, 2018 at 10:45 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.