Sao chép tập tin từ máy chủ vào container Docker


1580

Tôi đang cố gắng xây dựng một giải pháp sao lưu và khôi phục cho các container Docker mà chúng tôi làm việc cùng.

Tôi có hình ảnh cơ sở Docker mà tôi đã tạo ubuntu:basevà không muốn phải xây dựng lại nó mỗi lần với tệp Docker để thêm tệp vào đó.

Tôi muốn tạo một tập lệnh chạy từ máy chủ và tạo một bộ chứa mới bằng cách sử dụng ubuntu:basehình ảnh Docker và sau đó sao chép các tập tin vào bộ chứa đó.

Làm thế nào tôi có thể sao chép các tập tin từ máy chủ vào container?


11
Nếu bạn không muốn xây dựng lại, tại sao không " docker commit "? Điều đó lưu hình ảnh của bạn.
Berend de Boer

27
Chỉ là một nhận xét về một khái niệm không ai đã đề cập: nói chung, coi container là "phù du". Có các trường hợp sử dụng để sao chép tệp vào / từ một thùng chứa đang chạy (thử nghiệm, tạo mẫu). Nhưng nếu bạn thấy mình ở một vị trí mà bạn không thể xây dựng lại những gì bạn cần bằng cách sử dụng Dockerfiles và / hoặc sáng tác, thì bạn có thể đang ở một nơi tồi tệ. Nói chung, bạn không muốn sao lưu các thùng chứa như thể chúng là các đối tượng OS hoặc thậm chí VM. Nói chung :-)
Scott Prive

Câu trả lời:


2674

Các cplệnh có thể được sử dụng để sao chép các file.

Một tập tin cụ thể có thể được sao chép vào container như:

docker cp foo.txt mycontainer:/foo.txt

Một tập tin cụ thể có thể được sao chép TỪ container như:

docker cp mycontainer:/foo.txt foo.txt

Để nhấn mạnh, mycontainerlà một thùng chứa ID, không một hình ảnh ID.

Nhiều tập tin được chứa trong thư mục srccó thể được sao chép vào targetthư mục bằng cách sử dụng:

docker cp src/. mycontainer:/target
docker cp mycontainer:/src/. target

Tham khảo: Tài liệu CLI Docker chocp

Trong các phiên bản Docker trước 1.8, chỉ có thể sao chép các tệp từ một thùng chứa sang máy chủ. Không phải từ máy chủ đến một container.


2
cũng lưu ý rằng điều này có thể trên máy chủ vm hoặc hệ điều hành chính và hoạt động hoặc là máy chủ lưu trữ hoặc vm để lưu trữ (hoặc hệ điều hành chính)
Adam Tuliper - MSFT

7
Trong Dockerfile, bạn có thể sử dụng từ khóa ADD để thêm tệp trong thời gian xây dựng.
0x7d7b

4
@ h3nrik COPYưa thích hơnADD khi áp dụng.
Franklin Yu

10
sử dụng docker cpđể sao chép từ container sang máy chủ hoạt động tốt, nhưng khi sử dụng nó để sao chép các tập tin từ máy chủ sang container, không có tác dụng ... có ai biết tại sao không? phiên bản docker: Docker phiên bản 1.10.3, xây dựng cb079f6 không được hỗ trợ
Ace.Yin

2
Tôi có thể sao chép nhiều tập tin bằng cách sử dụng cp docker từ máy chủ sang container không?
Yogesh

182
  1. Nhận tên container hoặc id container ngắn:

    $ docker ps
    
  2. Nhận id container đầy đủ:

    $ docker inspect -f   '{{.Id}}'  SHORT_CONTAINER_ID-or-CONTAINER_NAME
    
  3. Sao chép tập tin:

    $ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
    

THÍ DỤ:

$ docker ps

CONTAINER ID      IMAGE    COMMAND       CREATED      STATUS       PORTS        NAMES

d8e703d7e303   solidleon/ssh:latest      /usr/sbin/sshd -D                      cranky_pare

$ docker inspect -f   '{{.Id}}' cranky_pare

hoặc là

$ docker inspect -f   '{{.Id}}' d8e703d7e303

d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

$ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5**/root/file.txt

13
Đối với tôi đường dẫn lắp của máy chủ không chứa aufsnhưng a devicemapper. Cách dễ nhất để kiểm tra đường dẫn lắp container (trong khi nó đang chạy) là chạy lệnh mount.
derenio

3
Tôi đã thử giải pháp trên. Nó sao chép các tập tin vào thư mục cụ thể docker. Tuy nhiên, khi tôi sử dụng bash cho docker container, các tệp không hiển thị ở đó. Có cái gì tôi đang thiếu?
AppleBud

2
Đường dẫn mới là / var / lib / docker / devicemapper / mnt / << id >> / rootfs /
mcuadros 14/1/2015

4
Đối với tôi, trên Docker 1.4.1 (mới nhất hiện tại), đó là/var/lib/docker/aufs/diff/<id>/
dùng193130

3
Còn người dùng MacOS nghèo thì sao? Các thư mục gắn kết là trong /var/libtôi. find / -name dockercũng không hữu ích.
nguyện

141

Cách sạch nhất là gắn thư mục máy chủ vào container khi khởi động container:

{host} docker run -v /path/to/hostdir:/mnt --name my_container my_image
{host} docker exec -it my_container bash
{container} cp /mnt/sourcefile /path/to/destfile

3
Làm thế nào bạn có thể chạy container? Tôi nghĩ bạn có thể làm điều đó chỉ với một hình ảnh.
Pavel Zaitsev

Tôi không thể làm cho nó hoạt động khi container hiện có aka đã chạy trước đó. Tar dưới đây hoạt động tốt đẹp.
Eino Mäkitalo

1
Cách duy nhất làm việc này đối với tôi là gắn âm lượng cùng với việc chạy hình ảnh (khởi tạo bộ chứa). Kết thúc với:docker run -d -p -v /host/path:/mnt --name container_name image_name
peter n

2
Điều này không làm việc cho tôi. Atleast không thể chạy một container. Chỉ có thể chạy hình ảnh
Shashank Hegde

1
Tôi ngạc nhiên rằng đó docker cplà một hoạt động một chiều!
ThorSummoner

115

Sau đây là một cách làm khá xấu xí nhưng nó hoạt động.

docker run -i ubuntu /bin/bash -c 'cat > file' < file

7
Điều này làm việc tuyệt vời! Nhưng đừng quên cam kết thay đổi : docker commit `docker ps -l -q` ubuntu-with-file. Khác, thay đổi sẽ bị mất (sử dụng bất kỳ tên nào bạn muốn thay vì ubuntu-with-file)
Michael_Scharf

@Erik: Tập tin nằm ở đâu khi container chạy?
coanor

49
Ngoài ra, chúng tôi có thể sử dụng docker exectính năng mới để hoạt động với container đang chạy:docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/
Mikl

17
@Mikl Tôi nghĩ rằng nó nên docker exec -i ...thay thế -it, bởi vì không có TTY khi đường ống từ một tập tin.
z0r

4
Nếu bạn vẫn bị mắc kẹt trên một phiên bản cũ của Docker (như tôi) và muốn sao chép toàn bộ thư mục, bạn có thể làm điều này: tar -c -v -f - /path/to/host/directory | docker exec -i <container-name> bash -c 'tar -x -v --strip-components 1 -f - -C /path/to/container/directory'
eahanson

43

Nếu bạn cần làm điều này trên một container đang chạy, bạn có thể sử dụng docker exec (được thêm vào trong 1.3).

Đầu tiên, tìm tên hoặc ID của người chứa:

$ docker ps
CONTAINER ID        IMAGE                        COMMAND             CREATED             STATUS              PORTS                   NAMES
b9b7400ddd8f        ubuntu:latest                "/bin/bash"         2 seconds ago       Up 2 seconds                                elated_hodgkin

Trong ví dụ trên chúng ta có thể sử dụng b9b7400ddd8fhoặc elated_hodgkin.

Nếu bạn muốn sao chép mọi thứ /tmp/somefilestrên máy chủ vào /var/wwwtrong container:

$ cd /tmp/somefiles
$ tar -cv * | docker exec -i elated_hodgkin tar x -C /var/www

Sau đó chúng ta có thể thực thi /bin/bashtrong container và xác minh nó hoạt động:

$ docker exec -it elated_hodgkin /bin/bash
root@b9b7400ddd8f:/# ls /var/www
file1  file2

Hoạt động tuyệt vời trên docker 1.16 trên Centos 7.4 Ý tưởng sáng tạo tuyệt vời.
Cậu bé Dudi

41
  1. Tạo một dockerfile mới và sử dụng hình ảnh hiện có làm cơ sở của bạn.

    FROM myName/myImage:latest
    
    ADD myFile.py bin/myFile.py
    
  2. Sau đó xây dựng container:

    docker build .
    

2
Đây là những gì làm việc cho tôi. KHÔNG CÓ NÀO khác. Cảm ơn bạn!
Owen

Nó sẽ tạo ra một hình ảnh mới, không trực tiếp một container mới. Nếu bạn sử dụng lại hình ảnh này trong khi myFile.py thay đổi, nó sẽ sử dụng phiên bản cũ hơn của tệp, trừ khi bạn xây dựng lại hình ảnh.
Guillaume Lebreton

Tôi thấy đây là cách nhanh nhất chỉ khi bạn đang thử nghiệm trên một máy chủ từ xa.
Dominik Krulak

Theo đó, hầu hết mọi người nên sử dụng COPY thay vì THÊM. Nhưng đối với các tệp cục bộ (như trong ví dụ này) thì chúng tương đương nhau.
hoosierEE

39

Giải pháp được đưa ra dưới đây,

Từ vỏ Docker,

root@123abc:/root#  <-- get the container ID

Từ chủ nhà

cp thefile.txt /var/lib/docker/devicemapper/mnt/123abc<bunch-o-hex>/rootfs/root

Tập tin sẽ được sao chép trực tiếp vào vị trí chứa container trên hệ thống tập tin.


10
Câu trả lời chính xác. Trong các bản phát hành docker mới hơn, đường dẫn đã được đổi tên thành / var / lib / docker / aufs / mnt /
Alex Volkov

đường dẫn devicemapper dường như không hoạt động trên fedora với docker 1.6. Đã đặt nó dưới dạng Q riêng biệt, stackoverflow.com/questions/29939419/ , bất kỳ nhận xét nào cũng sẽ được đánh giá cao.
Yogesh_D

33

Thông thường có ba loại:

  1. Từ một container đến máy chủ

    docker cp container_id:./bar/foo.txt .
    

dev1

  1. Từ máy chủ đến một container

    docker exec -i container_id sh -c 'cat > ./bar/foo.txt' < ./foo.txt
    

dev2

  1. Từ một container đến một container trộn 1 và 2

    docker cp container_id1:./bar/foo.txt .
    
    docker exec -i container_id2 sh -c 'cat > ./bar/foo.txt' < ./foo.txt
    

dev3


6
docker cp hoạt động cả hai cách. Không cần phải thực hiện, mèo và chuyển hướng. docker cp host_file.txt container: / path /
tbm

32

Một giải pháp khác để sao chép tập tin vào một container đang chạy là sử dụng tar:

tar -c foo.sh | docker exec -i theDockerContainer /bin/tar -C /tmp -x

Sao chép tập tin foo.shvào /tmptrong container.

Chỉnh sửa: Xóa phần còn lại -f, nhờ nhận xét của Maarten .


Điều này là tốt nếu bạn cần gửi toàn bộ thư mục. Đối với một tệp duy nhất, câu trả lời của Erik đơn giản hơn.
Kelvin

1
@Kelvin: Nhưng tar cũng bảo tồn các thuộc tính và tên tệp. Trong số những người khác có nghĩa là bạn chỉ phải nhập tên một lần (và ở đó bạn có được hoàn thành tab từ vỏ của bạn). Vì vậy, tôi muốn nói tar thực sự đơn giản hơn, miễn là nó được cài đặt trong container.
Maarten

1
Các -f -là một chút dư thừa, mặc dù hành vi mặc định là để viết thư cho stdout anyway.
Maarten

điều này có nghĩa là có sự phụ thuộc của máy chủ vào tar
cellige

Bạn đã đúng - bạn cần tar để được cài đặt trên máy chủ và trong container. Ngày nay sử dụng docker cp là giải pháp tốt hơn.
tham gia

24

Để sao chép một tập tin từ máy chủ sang container đang chạy

docker exec -i $CONTAINER /bin/bash -c "cat > $CONTAINER_PATH" < $HOST_PATH

Dựa trên câu trả lời của Erik và bình luận của Mikl và z0r.


Các giải pháp được chấp nhận đôi khi làm xáo trộn các tập tin thụt lề khi chuyển sang các container đang chạy. Điều này hoạt động hoàn hảo cho những trường hợp như vậy
Giấc mơ


15

Đây là câu trả lời trực tiếp cho câu hỏi 'Sao chép tệp từ máy chủ sang bộ chứa Docker' được nêu trong câu hỏi này trong tiêu đề.

Hãy thử docker cp. Đó là cách dễ nhất để làm điều đó và hoạt động ngay cả trên máy Mac của tôi. Sử dụng:

docker cp /root/some-file.txt some-docker-container:/root

Điều này sẽ sao chép tệp some-file.txttrong thư mục /roottrên máy chủ của bạn vào thùng chứa Docker có tên some-docker-containertrong thư mục /root. Nó rất gần với cú pháp sao chép an toàn. Và như trong bài trước, bạn có thể sử dụng nó ngược lại. Tức là bạn cũng sao chép các tập tin từ container vào máy chủ.

Và trước khi bạn downlink bài này, xin vui lòng nhập docker cp --help. Đọc tài liệu có thể rất hữu ích, đôi khi ...

Nếu bạn không thích theo cách đó và bạn muốn khối lượng dữ liệu trong thùng chứa đã được tạo và đang chạy của mình, thì giải trí là lựa chọn duy nhất của bạn ngày hôm nay. Xem thêm Làm cách nào tôi có thể thêm âm lượng vào bộ chứa Docker hiện tại? .


15

Tôi đã thử hầu hết các giải pháp (nâng cấp) ở đây nhưng trong docker 17,09 (năm 2018) không còn thư mục / var / lib / docker / aufs nữa.

Điều này đơn giản đã docker cpgiải quyết nhiệm vụ này.

docker cp c:\path\to\local\file container_name:/path/to/target/dir/

Làm thế nào để có được container_name?

 docker ps 

Có một NAMESphần. Đừng sử dụng a IMAGE.


12

Để sao chép tệp / thư mục giữa bộ chứa và hệ thống tệp cục bộ, hãy nhập lệnh:

docker cp {SOURCE_FILE} {DESTINATION_CONTAINER_ID}:/{DESTINATION_PATH}

Ví dụ,

docker cp /home/foo container-id:/home/dir

Để lấy id contianer, gõ lệnh đã cho:

docker ps

Các nội dung trên được lấy từ docker.com .


8

Giả sử container đang chạy, hãy gõ lệnh đã cho:

# cat /path/to/host/file/ | docker exec -i -t <container_id> bash -c "/bin/cat > /path/to/container/file"

Để chia sẻ tệp bằng thư mục dùng chung, hãy chạy vùng chứa bằng cách nhập lệnh đã cho:

# docker run -v /path/to/host/dir:/path/to/container/dir ...

Lưu ý: Các vấn đề về quyền có thể phát sinh do người dùng của bộ chứa không giống với người dùng của máy chủ lưu trữ.


1
Ngoài ra:docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/
Mikl

2
Lưu ý rằng catsẽ không bị chấm dứt khi nó thoát. Nếu nó quan trọng với bạn (nếu bạn đang sao chép tập lệnh bash, bash sẽ từ chối chạy chúng), bạn nên chạy lsof | grep yourfilenamevà giết cattiến trình giữ tệp đã nói.
johndodo

Cám ơn! Mẹo tuyệt vời. Bạn có thể vui lòng cho tôi biết làm thế nào để giết quá trình này với một lệnh không? Một cái gì đó như kill $(lsof | grep /path/to/file | sed ...). Tôi sẽ biết ơn sự giúp đỡ của bạn
Mikl

kill $(docker top CONTAINERNAME | sed -n '/cat$/p' | sed 's/^root[^0-9]\+\([0-9]\+\).*$/\1/')
Mikl

8

Đây là lệnh sao chép dữ liệu từ Docker sang Host:

docker cp container_id:file path/filename /hostpath

docker cp a13fb9c9e674:/tmp/dgController.log /tmp/

Dưới đây là lệnh sao chép dữ liệu từ máy chủ sang docker:

docker cp a.txt ccfbeb35116b:/home/

7

Trong môi trường docker, tất cả các container được tìm thấy trong thư mục:

/var/lib/docker/aufs/required-docker-id/

Để sao chép thư mục / tệp nguồn vào bất kỳ phần nào của vùng chứa, hãy nhập lệnh đã cho:

sudo cp -r mydir/ /var/lib/docker/aufs/mnt/required-docker-id/mnt/


5

tardocker cp là một kết hợp tốt để sao chép mọi thứ trong một thư mục.

Tạo một thùng chứa dữ liệu

docker create --name dvc --volume /path/on/container cirros

Để duy trì hệ thống phân cấp thư mục

tar -c -C /path/on/local/machine . | docker cp - dvc:/path/on/container

Kiểm tra công việc của bạn

docker run --rm --volumes-from dvc cirros ls -al /path/on/container

5

Nếu máy chủ lưu trữ là CentOS hoặc Fedora, có một proxy KHÔNG có /var/lib/docker/aufs, nhưng nó nằm dưới /proc:

cp -r /home/user/mydata/* /proc/$(docker inspect --format "{{.State.Pid}}" <containerid>)/root

Cmd này sẽ sao chép tất cả nội dung của datathư mục vào /container với id "containerid".


Điều này không phải chỉ có ở Redhat: nó cũng hoạt động trên Debian. (có thể là tất cả Gnu / Linux với /proc). Cũng mở rộng đường dẫn để đặt tệp ở một nơi khác, không chỉ root.
ctrl-alt-delor

5

Trong trường hợp không rõ ràng với một người như tôi thì mycontainercâu trả lời trong @ h3nrik có nghĩa là gì, nó thực sự là id container. Để sao chép một tập tin WarpSquare.mp4trong /app/example_scenes/1440p60từ một thùng chứa Docker đã thoát vào thư mục hiện tại tôi đã sử dụng này.

docker cp `docker ps -q -l`:/app/example_scenes/1440p60/WarpSquare.mp4 .

trong đó docker ps -q -lkéo lên id container của trường hợp thoát cuối cùng. Trong trường hợp nó không phải là một container đã thoát, bạn có thể lấy nó bằng docker container lshoặcdocker ps


1
Bạn có thể liệt kê id của các container đã thoát bằng docker ps -ahoặc docker container ls -a.
0x7d7b

4

Nhiều người tìm thấy câu hỏi này thực sự có thể có vấn đề sao chép tệp vào hình ảnh Docker trong khi nó đang được tạo (tôi đã làm).

Trong trường hợp đó, bạn có thể sử dụng COPYlệnh trong Dockerfileđó bạn sử dụng để tạo hình ảnh.

Xem tài liệu .


4

Bạn chỉ có thể theo dõi địa chỉ IP của máy cục bộ của mình bằng cách sử dụng

ifconfig

Sau đó chỉ cần nhập vào Docker container của bạn và gõ

scp user_name@ip_address:/path_to_the_file destination

Trong mọi trường hợp nếu bạn chưa cài đặt máy khách SSH và máy chủ, chỉ cần cài đặt nó bằng cách sử dụng:

sudo apt-get install openssh-server

Thanx rất nhiều, nó làm việc tốt cho tôi. Thêm vào đó, tôi thấy nó hiệu quả hơn các cách khác
user1314742

Đây là một giải pháp khủng khiếp về mặt bảo mật.

4

Đây là một máy chủ để sao chép một tập tin duy nhất trong khi chạy một thùng chứa tomcat.

docker run -v /PATH_TO_WAR/sample.war:/usr/local/tomcat/webapps/myapp.war -it -p 8080:8080 tomcat

Điều này sẽ sao chép tệp chiến tranh vào thư mục webapps và giúp ứng dụng của bạn chạy nhanh chóng.


1
-v sẽ gắn kết (tức là tạo một liên kết), không sao chép
Vitaliy Ulantikov

sự khác biệt trong kết quả là việc gắn kết ẩn nội dung vùng chứa trước đó, ví dụ: nếu bạn gắn thư mục máy chủ vào thư mục vùng chứa, bạn không thể thấy nữa nội dung thư mục chứa trước đó
mrq

4

Container Up Cú pháp:

 docker run -v /HOST/folder:/Container/floder 

Trong tập tin docker

COPY hom* /myFolder/        # adds all files starting with "hom"
COPY hom?.txt /myFolder/    # ? is replaced with any single character, e.g., "home.txt"

3

Cách tốt nhất để sao chép các tập tin vào bộ chứa mà tôi tìm thấy là gắn một thư mục trên máy chủ bằng cách sử dụng -vtùy chọn lệnh chạy docker.


3

Có câu trả lời tốt, nhưng quá cụ thể. Tôi tìm ra docker pslà cách tốt để có được id container mà bạn quan tâm. Sau đó, làm

mount | grep <id>

để xem nơi âm lượng được gắn kết. Đó là

/var/lib/docker/devicemapper/mnt/<id>/rootfs/

đối với tôi, nhưng nó có thể là một con đường khác nhau tùy thuộc vào hệ điều hành và cấu hình. Bây giờ chỉ cần sao chép các tập tin vào đường dẫn đó.

Sử dụng -vkhông phải lúc nào cũng thực tế.


3

Tôi mới bắt đầu sử dụng docker để biên dịch VLC, đây là những gì bạn có thể làm để sao chép các tập tin qua lại từ các container:

su -
cd /var/lib/docker
ls -palR > /home/user/dockerfilelist.txt

Tìm kiếm một tập tin quen thuộc trong txt đó và bạn sẽ có thư mục, cd vào nó dưới dạng root và voila! sao chép tất cả những gì bạn muốn

Có thể có một con đường với "hợp nhất" trong đó, tôi đoán bạn muốn con đường có "diff" trong đó.

Ngoài ra nếu bạn thoát khỏi container và muốn quay lại nơi bạn rời đi:

docker ps -a
docker start -i containerid

Tôi đoán điều đó hữu ích khi bạn không đặt tên bất cứ thứ gì bằng một lệnh như

docker run -it registry.videolan.org:5000/vlc-debian-win64 /bin/bash

Chắc chắn phương pháp hacker nhưng vậy thì sao!


3
docker cp SRC_PATH CONTAINER_ID:DEST_PATH

Ví dụ: tôi muốn sao chép tệp xxxx / download / jenkins của mình sang tomcat

Tôi bắt đầu lấy id của container Tomcat

docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
63686740b488        tomcat              "catalina.sh run"   12 seconds ago      Up 11 seconds       0.0.0.0:8080->8080/tcp   peaceful_babbage

docker cp xxxx/download/jenkins.war  63686740b488:usr/local/tomcat/webapps/

2

Phương pháp yêu thích của tôi:

HỘP ĐỰNG:

CONTAINER_ID=$(docker ps | grep <string> | awk '{ print $1 }' | xargs docker inspect -f '{{.Id}}')

file.txt

mv -f file.txt /var/lib/docker/devicemapper/mnt/$CONTAINER_ID/rootfs/root/file.txt

hoặc là

mv -f file.txt /var/lib/docker/aufs/mnt/$CONTAINER_ID/rootfs/root/file.txt

đường dẫn devicemapper dường như không hoạt động trên fedora với docker 1.6. Đã đặt nó dưới dạng Q riêng biệt, stackoverflow.com/questions/29939419/ , bất kỳ nhận xét nào cũng sẽ được đánh giá cao.
Yogesh_D

2

Theo tôi, bạn không được sao chép các tệp bên trong hình ảnh nhưng bạn có thể sử dụng GIT hoặc SVN cho các tệp của mình và sau đó đặt âm lượng được đồng bộ hóa với một thư mục cục bộ. Sử dụng tập lệnh trong khi chạy bộ chứa, người có thể kiểm tra xem dữ liệu đã tồn tại trong thư mục cục bộ hay chưa nếu không sao chép nó từ kho lưu trữ GIT. Điều đó làm cho hình ảnh của bạn rất nhẹ.


Điều này có vẻ như một rủi ro bảo mật và cơn ác mộng truy cập đang chờ xảy ra. Làm thế nào để bạn cung cấp quyền truy cập vào kho git từ trong hình ảnh của bạn? Ngay cả giả sử đó là kho lưu trữ công cộng, bạn sẽ cho rằng máy chủ mà container của bạn chạy có quyền truy cập vào repo đó.
tbm

Tôi đồng ý với bạn nếu git được sử dụng bên trong container docker. Nhưng trong trường hợp của chúng tôi, tập lệnh đang chạy từ máy chủ
h.aittamaa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.