도커 컨테이너에 호스트 디렉토리를 마운트하는 방법
호스트에서 수행된 업데이트가 Docker 컨테이너에 반영되도록 호스트 디렉토리를 Docker 컨테이너에 마운트하려고 합니다.
내가 어디서 뭘 잘못하고 있는 거지?제가 한 일은 다음과 같습니다.
kishore$ cat Dockerfile
FROM ubuntu:trusty
RUN apt-get update
RUN apt-get -y install git curl vim
CMD ["/bin/bash"]
WORKDIR /test_container
VOLUME ["/test_container"]
kishore$ tree . ├── Dockerfile └── main_folder ├── tfile1.txt ├── tfile2.txt ├── tfile3.txt └── tfile4.txt
1 directory, 5 files kishore$ pwd /Users/kishore/tdock
kishore$ docker build --tag=k3_s3:latest .
Uploading context 7.168 kB Uploading context Step 0 : FROM ubuntu:trusty ---> 99ec81b80c55 Step 1 : RUN apt-get update ---> Using cache ---> 1c7282005040 Step 2 : RUN apt-get -y install git curl vim ---> Using cache ---> aed48634e300 Step 3 : CMD ["/bin/bash"] ---> Running in d081b576878d ---> 65db8df48595 Step 4 : WORKDIR /test_container ---> Running in 5b8d2ccd719d ---> 250369b30e1f Step 5 : VOLUME ["/test_container"] ---> Running in 72ca332d9809 ---> 163deb2b1bc5 Successfully built 163deb2b1bc5 Removing intermediate container b8bfcb071441 Removing intermediate container d081b576878d Removing intermediate container 5b8d2ccd719d Removing intermediate container 72ca332d9809
kishore$ docker run -d -v /Users/kishore/main_folder:/test_container k3_s3:latest
c9f9a7e09c54ee1c2cc966f15c963b4af320b5203b8c46689033c1ab8872a0ea
kishore$ docker run -i -t k3_s3:latest /bin/bash
root@0f17e2313a46:/test_container# ls -al total 8 drwx------ 2 root root 4096 Apr 29 05:15 . drwxr-xr-x 66 root root 4096 Apr 29 05:15 ..
root@0f17e2313a46:/test_container# exit exit
kishore$ docker -v
Docker version 0.9.1, build 867b2a9
- boot2docker 버전을 확인하는 방법을 모르겠습니다.
당면한 질문, 문제:
- 메인_폴더를 도커 컨테이너 안에 있는 test_container 폴더에 연결하려면 어떻게 해야 합니까?
- 저는 이것을 자동으로 만들어야 합니다.실제로 사용하지 않고 어떻게 해야 합니까?
run -d -v
명령? - boot2 도커가 충돌하면 어떻게 됩니까?Docker 파일은 Docker 파일 외에 어디에 저장됩니까?
이렇게 할 수 있는 방법이 몇 가지 방법이 있습니다. 파일을 입니다.ADD
다음과 같은 명령:
ADD . /path/inside/docker/container
그러나 도커 파일을 작성한 후 호스트의 이 디렉토리에 대해 변경한 내용은 컨테이너에 표시되지 않습니다.때를 컨이너구때축도디커를다리렉때압다문니입축기하음과테토로 입니다..tar
해당 컨텍스트를 컨테이너에 영구적으로 업로드합니다.
두 번째 방법은 볼륨을 마운트하는 방법입니다.실행 중인 시스템에 따라 호스트 디렉토리가 변경될 수 있기 때문에 가능한 한 이동 가능한 호스트 디렉토리를 도커 파일 내의 도커 컨테이너 디렉토리에 매핑할 수 없습니다. 호트디리를도컨디에매리핑합다사다니야용해을음면려스하렉을 .-v
사용시플그를 사용할 때 지정docker run
예:항목:
# Run a container using the `alpine` image, mount the `/tmp`
# directory from your host into the `/container/directory`
# directory in your container, and run the `ls` command to
# show the contents of that directory.
docker run \
-v /tmp:/container/directory \
alpine \
ls /container/directory
는 이질의사다사습니다용했음을는용자를 했습니다.Docker version 0.9.1, build 867b2a9
도커 버전 >= 17.06에 대한 답변을 드리겠습니다.
디렉토리를 동기화하는 것으로 입니다.bind
이렇게 하면 소스(시스템) 및 대상(도커 컨테이너) 디렉토리가 바인딩됩니다.이것은 리눅스에 디렉터리를 마운트하는 것과 거의 같습니다.
Docker 설명서에 따르면 마운트할 적절한 명령은 다음과 같습니다.mount
에 -v
다음은 문서입니다.
--mount
쉼표로 구분된 여러 키-값 쌍으로 구성됩니다. 키은 값키/은쌍다음같은형갖태습다니를과각▁the의 를 취합니다.<key>=<value>
. 태플. 태플.--mount
은 구이보 니다합황보다 더 합니다.-v
또는--volume
그러나 키의 순서는 중요하지 않고 플래그의 값을 이해하기가 더 쉽습니다.그
type
운트의, 가한능이 될 수 .bind
,volume
또는tmpfs
(바인딩을 사용할 예정입니다)그
source
산의 이 데몬 호스트의 파일 입니다.바인딩 마운트의 경우 이 경로는 Docker 데몬 호스트의 파일 또는 디렉터리 경로입니다.다음과 같이 지정할 수 있습니다.source
또는src
.그
destination
파일 또는 디렉터리가 컨테이너에 마운트될 경로를 값으로 사용합니다.다음과 같이 지정할 수 있습니다.destination
,dst
또는target
.
따라서 현재 디렉터리(소스)를 다음과 같이 마운트합니다./test_container
는 다음과 같이
docker run -it --mount src="$(pwd)",target=/test_container,type=bind k3_s3
이러한 마운트 매개 변수에 공백이 있는 경우 따옴표를 붙여 넣어야 합니다.그들이 그렇지 않다는 것을 알면, 나는 사용할 것입니다.`pwd`
대신:
docker run -it --mount src=`pwd`,target=/test_container,type=bind k3_s3
파일 권한도 처리해야 합니다. 이 문서를 참조하십시오.
CLI에서 -v 옵션을 사용할 수 있습니다. 이 기능은 도커 파일을 통해 사용할 수 없습니다.
docker run -t -i -v <host_dir>:<container_dir> ubuntu /bin/bash
여기서 host_directory는 마운트하려는 호스트의 디렉토리입니다.컨테이너 디렉토리가 존재하지 않는 경우 도커가 생성할 것이므로 걱정할 필요가 없습니다.
루트 권한으로 호스트 시스템에서 host_dir를 변경하면 컨테이너에 표시되고 그 반대의 경우도 표시됩니다.
연속 마운트 2개:여기에 있는 많은 게시물이 두 개의 boot2docker를 사용하고 있을 것입니다. 아무것도 보이지 않는 이유는 호스트가 아닌 boot2docker에서 디렉토리를 마운트하고 있기 때문입니다.
기본적으로 2개의 연속 마운트가 필요합니다.
호스트에서 시스템으로 디렉토리를 마운트한 첫 번째 서버
두 번째는 다음과 같이 boot2 플레이어에서 컨테이너로 새 디렉터리를 마운트하는 것입니다.
을 컬로마위에
boot2docker
sudo mount -t vboxsf hostfolder /boot2dockerfolder
boot2docker
컨테이너에 입니다.docker run -v /boot2dockerfolder:/root/containerfolder -i -t imagename
그럼 당신이ls
에의 에.containerfolder
의 당은당내될것다니의 을 볼 수 입니다.hostfolder
.
X 를 OS X의 도커로 할 수 있습니까?boot2docker
아니면 비슷한 것.
저도 같은 경험을 했습니다. 명령은 정확하지만 어쨌든 컨테이너에 장착된 것은 아무것도 없습니다.
알고 보니 도커 설명서에 이미 설명되어 있습니다.입력할 때docker run -v /var/logs/on/host:/var/logs/in/container ...
그리고나서/var/logs/on/host
는 실제매니다습었에서 것입니다.boot2docker
Mac이 아닌 VM 이미지.
공유 폴더를 VM을 통해 실제 호스트(Mac의 경우)에 연결해야 합니다.
현재 디렉토리에 폴더를 마운트하려는 사용자:
docker run -d --name some-container -v ${PWD}/folder:/var/folder ubuntu
난 그저 내 돛을 얻기 위해 실험하는 것뿐입니다.물리적 시스템을 깨끗하게 유지하기 위해 도커 컨테이너 안에서 실행되는 JS 앱.
다음 명령을 사용하여 돛을 장착합니다./app의 JS/NodeJS 애플리케이션:
cd my_source_code_folder도커 실행 -it -p 1337:1337 -v $(pwd):/app my_domer/image_with_nodejs_etc
[UPDATE] 2017년 6월 현재, Mac용 도커는 VirtualBox를 조작해야 하는 모든 성가신 부분을 처리합니다.기본적으로 로컬 호스트의 모든 항목을 매핑할 수 있습니다./private
접두어자세한 내용은 여기.[/업데이트]
현재의 모든 답변은 Boot2docker에 대한 것입니다.이제는 도커 기계에 더 이상 사용되지 않으므로 도커 기계에 대해 다음과 같이 작동합니다.
먼저 도커-머신 VM에 SSH하고 매핑할 폴더를 생성합니다.
docker-machine ssh $MACHINE_NAME "sudo mkdir -p \"$VOL_DIR\""
이제 VirtualBox에 폴더를 공유합니다.
WORKDIR=$(basename "$VOL_DIR")
vboxmanage sharedfolder add "$MACHINE_NAME" --name "$WORKDIR" --hostpath "$VOL_DIR" --transient
마지막으로, 다시 도커 컴퓨터에 SSH를 넣고 방금 공유한 폴더를 마운트합니다.
docker-machine ssh $MACHINE_NAME "sudo mount -t vboxsf -o uid=\"$U\",gid=\"$G\" \"$WORKDIR\" \"$VOL_DIR\""
참고: UID와 GID의 경우에는 기본적으로 정수를 사용할 수 있습니다. 아직 사용할 수 있습니다.
이 테스트는 OS X El Capitan의 도커 머신 0.4.1 및 도커 1.8.3에서 테스트되었습니다.
용사를 합니다.command-line
:
docker run -it --name <WHATEVER> -p <LOCAL_PORT>:<CONTAINER_PORT> -v <LOCAL_PATH>:<CONTAINER_PATH> -d <IMAGE>:<TAG>
용사를 합니다.docker-compose.yaml
:
version: '2'
services:
cms:
image: <IMAGE>:<TAG>
ports:
- <LOCAL_PORT>:<CONTAINER_PORT>
volumes:
- <LOCAL_PATH>:<CONTAINER_PATH>
가정:
- 이미지: k3_s3
- 태그: 최신
- LOCAL_PORT: 8080
- 컨테이너_좌현: 8080
- LOCAL_PATH: /볼륨 대 마운트
- 컨테이너_경로: /mnt
예:
- 먼저 /볼륨-투-마운트를 만듭니다. (존재하는 경우 건너뜁니다.)
$ mkdir -p /volume-to-mount
- 도커-스캐너 -f 도커-스캐너음-드
version: '2'
services:
cms:
image: ghost-cms:latest
ports:
- 8080:8080
volumes:
- /volume-to-mount:/mnt
- 컨테이너를 확인합니다.
docker exec -it CONTAINER_ID ls -la /mnt
docker run -v /host/directory:/container/directory -t IMAGE-NAME /bin/bash
docker run -v /root/shareData:/home/shareData -t kylemanna/openvpn /bin/bash
내 시스템에서 나는 nhjk의 답변을 수정했고, 당신이 추가할 때 완벽하게 작동합니다.-t
깃발
Mac OS에서 폴더를 마운트하려면 다음과 같이 하십시오./Users/<name>/projects/
컨테이너의 루트에 있는 Mac에서:
docker run -it -v /Users/<name>/projects/:/projects <container_name> bash
ls /projects
호스트가 Windows 10이면 슬래시 대신 슬래시를 사용합니다.
docker run -it -p 12001:80 -v c:\Users\C\Desktop\dockerStorage:/root/sketches
호스트 드라이브가 공유되었는지 확인합니다(이 경우 C).저의 경우 위의 명령을 실행한 후 공유 권한을 요청하는 프롬프트가 표시되었습니다.
Windows 10 사용자의 경우 마운트 지점을 내부에 두는 것이 중요합니다.C:/Users/
디렉토리입니다.저는 이것을 작동시키기 위해 몇 시간 동안 노력했습니다.이 게시물은 도움이 되었지만 Windows 10용 솔루션이 수락된 답변에 대한 코멘트이기 때문에 처음에는 명확하지 않았습니다.제가 한 일은 다음과 같습니다.
docker run -it -p 12001:80 -v //c/Users/C/Desktop/dockerStorage:/root/sketches \
<your-image-here> /bin/bash
그러면 테스트를 위해, 당신은 할 수 있습니다.echo TEST > hostTest.txt
당신의 이미지 안에.새의 로컬호새볼합에서 볼 수 것입니다.C:/Users/C/Desktop/dockerStorage/
.
, 도커 18-CE 기로은, 당신으를 할 수 .docker run -v /src/path:/container/path
호스트 폴더의 양방향 바인딩을 수행합니다.
Windows 10/WSL로 작업 중이고 Windows용 Docker-CE를 호스트로 한 다음 WSL에서 Docker-ce 클라이언트 도구를 사용하는 경우에는 중요한 이점이 있습니다. WSL은 전체 파일 시스템에 대해 알고 있지만 Windows 호스트는 드라이브에 대해서만 알고 있습니다.에서는 /할 수 WSL을 에는 /mnt/c/projectpath를 사용할 수 .docker run -v ${PWD}:/projectpath
호스트에서 /mnt는 아무 의미가 없기 때문에 /projectpath/가 비어 있음을 발견할 수 있습니다.
/에 /c/projectpath를 합니다.docker run -v ${PWD}:/projectpath
컨테이너에서 /projectpath는 /c/projectpath를 실시간으로 반영합니다.게스트 내부에 빈 마운트가 있는 것 외에는 이 문제를 감지할 수 있는 오류나 다른 방법이 없습니다.
또한 Docker for Windows 설정에서 "드라이브를 공유"해야 합니다.
2015년 7월 업데이트 - boot2도커가 이제 직접 장착을 지원합니다.사용할 수 있습니다.-v /var/logs/on/host:/var/logs/in/container
Mac을 으로 마운트하지 프롬프트에서 사용할 수 .
저도 같은 문제를 겪고 있습니다.명령줄은 다음과 같습니다.
docker run --rm -i --name $NAME -v `pwd`:/sources:z $NAME
문제는 'pwd'입니다.그래서 $(pwd)로 변경했습니다.
docker run --rm -i --name $NAME -v $(pwd):/sources:z $NAME
메인_폴더를 도커 컨테이너 안에 있는 test_container 폴더에 어떻게 연결합니까?
(향후 업데이트에 따라) boot2docker를 사용하는 Mac에서 폴더가 비어 있는 경우를 제외하고는 아래 명령이 정확합니다.이 문제를 해결하는 방법에 대한 튜토리얼은 매트 답변을 참조하십시오.
docker run -d -v /Users/kishore/main_folder:/test_container k3_s3:latest
run -d -v 명령어를 사용하지 않고 자동으로 실행하는 방법이 필요합니다.
이러한 명령어는 도커 작동 방식에 내재되어 있기 때문에 사용에서 벗어날 수 없습니다.반복적으로 작성하는 것을 절약하기 위해 셸 스크립트에 저장하는 것이 가장 좋습니다.
boot2도커가 충돌하면 어떻게 됩니까?도커 파일은 어디에 저장됩니까?
-varg를 사용하여 호스트 시스템을 참조할 수 있으면 호스트에서 파일이 안전합니다.
Docker 파일과 함께 'docker build -t my image'를 사용한 경우 파일이 이미지에 구워집니다.
당신의 도커 이미지는 boot2docker-vm에 저장되어 있다고 생각합니다.VirtualBox에서 VM을 삭제할 때 이미지가 사라졌을 때 이 사실을 알게 되었습니다. (참고로, VirtualBox가 어떻게 작동하는지 모르기 때문에 이미지는 도커에 보이지 않고 다른 곳에 숨겨져 있을 수 있습니다.)
같은 문제가 있었습니다.도커 설명서에서 발견된 내용:
참고: 호스트 디렉토리는 본질적으로 호스트에 종속됩니다.이러한 이유로 Docker 파일에서 호스트 디렉토리를 마운트할 수 없습니다. 빌드된 이미지는 이식 가능해야 하므로 Volume 명령은 host-dir 전달을 지원하지 않습니다.모든 잠재적 호스트에서 호스트 디렉토리를 사용할 수 있는 것은 아닙니다.
읽기 수 은 쓰읽기서것호/.-v
에 있는 docker run
다른 답변이 올바르게 지적한 대로 명령을 실행합니다.
시스템 지시에 따라 배치된 디렉토리는 다음과 같습니다./var
,/usr
,/etc
컨테이너 아래에 장착할 수 없습니다.
은 사용자.-v
하도록 지시합니다. 를 들어 switch " " " 는 " 몬 " 디 " 렉 " 컨 " 이 " 합 " 시 " 트 " 너 " 하 " 니 " 운 " 도 " 록 " 지 " 에 " 테 " 마 " 다 " 터 " 리 " 를 " 도 " 커 " 데 예:
docker run -t -d -v /{local}/{path}:/{container}/{path} --name {container_name} {imagename}
다음은 Windows 경로의 예입니다.
docker run -P -it --name organizr --mount src="/c/Users/MyUserName/AppData/Roaming/DockerConfigs/Organizr",dst=/config,type=bind organizrtools/organizr-v2:latest
을 잡아당기고,, , 을잡기고당아, 는고씨하름것동, 반타는하이핑서안길다, 을해복만것결니습했심로기들작, ▁over▁a▁as▁up▁to▁whip▁small▁pulling다니습결▁decided했▁during,▁all▁i▁a▁note심▁of▁hair로,ping참만기▁paths들y▁again것▁having작을▁side고▁this은저타는▁and,▁and동▁ret▁over길,로le이반서▁with▁andAutoHotkey
Windows 경로를 "Docker Windows" 형식의 경로로 변환하는 스크립트입니다.이렇게 하면 마운트 지점으로 사용할 Windows 경로를 클립보드에 복사하고 키보드의 "Apps Key"를 누르면 Docker가 인식하는 경로 형식으로 포맷됩니다.
예:
클립보드에 복사:
C:\Users\My PC\AppData\Roaming\DockerConfigs\Organizr
을 .Apps Key
커서가 명령줄에서 원하는 위치에 있으면 해당 위치에 붙여넣습니다.
"/c/Users/My PC/AppData/Roaming/DockerConfigs/Organizr"
시간을 많이 절약해 줍니다.이것은 유용하다고 생각되는 다른 사람들을 위한 것입니다.
; --------------------------------------------------------------------------------------------------------------
;
; Docker Utility: Convert a Windows Formatted Path to a Docker Formatter Path
; Useful for (example) when mounting Windows volumes via the command-line.
;
; By: J. Scott Elblein
; Version: 1.0
; Date: 2/5/2019
;
; Usage: Cut or Copy the Windows formatted path to the clipboard, press the AppsKey on your keyboard
; (usually right next to the Windows Key), it'll format it into a 'docker path' and enter it
; into the active window. Easy example usage would be to copy your intended volume path via
; Explorer, place the cursor after the "-v" in your Docker command, press the Apps Key and
; then it'll place the formatted path onto the line for you.
;
; TODO:: I may or may not add anything to this depending on needs. Some ideas are:
;
; - Add a tray menu with the ability to do some things, like just replace the unformatted path
; on the clipboard with the formatted one rather than enter it automatically.
; - Add 'smarter' handling so the it first confirms that the clipboard text is even a path in
; the first place. (would need to be able to handle Win + Mac + Linux)
; - Add command-line handling so the script doesn't need to always be in the tray, you could
; just pass the Windows path to the script, have it format it, then paste and close.
; Also, could have it just check for a path on the clipboard upon script startup, if found
; do it's job, then exit the script.
; - Add an 'all-in-one' action, to copy the selected Windows path, and then output the result.
; - Whatever else comes to mind.
;
; --------------------------------------------------------------------------------------------------------------
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
AppsKey::
; Create a new var, store the current clipboard contents (should be a Windows path)
NewStr := Clipboard
; Rip out the first 2 chars (should be a drive letter and colon) & convert the letter to lowercase
; NOTE: I could probably replace the following 3 lines with a regexreplace, but atm I'm lazy and in a rush.
tmpVar := SubStr(NewStr, 1, 2)
StringLower, tmpVar, tmpVar
; Replace the uppercase drive letter and colon with the lowercase drive letter and colon
NewStr := StrReplace(NewStr, SubStr(NewStr, 1, 2), tmpVar)
; Replace backslashes with forward slashes
NewStr := StrReplace(NewStr, "\", "/")
; Replace all colons with nothing
NewStr := StrReplace(NewStr, ":", "")
; Remove the last char if it's a trailing forward slash
NewStr := RegExReplace(NewStr, "/$")
; Append a leading forward slash if not already there
if RegExMatch(NewStr, "^/") == 0
NewStr := "/" . NewStr
; If there are any spaces in the path ... wrap in double quotes
if RegExMatch(NewStr, " ") > 0
NewStr := """" . NewStr . """"
; Send the result to the active window
SendInput % NewStr
Windows 10에서 이 기능을 사용하려면 시스템 트레이에서 도커 설정 창을 열고 공유 드라이브 섹션으로 이동해야 했습니다.
그리고 옆에 있는 상자를 확인했습니다.C
Docker에서 사용자 폴더에 쓰기 권한을 얻기 위해 데스크톱 자격 증명을 요청했습니다.
그런 다음 위의 예제와 설정 페이지의 예제에 따라 도커 컨테이너를 실행하여 다음에 첨부했습니다./data
컨테이너 안에
docker run -v c:/Users/<user.name>/Desktop/dockerStorage:/data -other -options
Guest AdditionsVirtualBox 게스기함포한을능가boot2docker
/에 마운트하는 /Users' boot2docker에 방법
tl;dr VirtualBox Guest Additions(VirtualBox Guest Additions)를 사용하여 사용자 지정 boot2dr.iso를 구축하거나(링크 참조) http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso 를 다운로드하여 ~/.boot2dr/boot2dr.iso에 저장합니다.
Windows에서는 절대 경로를 제공해야 합니다.
- 호스트: Windows 10
- 컨테이너:텐서플로 노트북
Below는 나를 위해 일했습니다.
docker run -t -i -v D:/projects/:/home/chankeypathak/work -p 8888:8888 jupyter/tensorflow-notebook /bin/bash
저도 같은 문제가 있었습니다. C를 탑재하려고 했습니다.의 \Users\ \Users\ 폴더
한 라인이다 도커 툴박스 명령어 라인.
$ docker run -it --name <containername> -v /c/Users:/myVolData <imagename>
Portainer 웹 응용 프로그램을 사용하여 다른 시각적 경험을 할 수도 있습니다.
먼저 Portainer 이미지를 당깁니다.
docker pull portainer/portainer
그런 다음 Portainer의 볼륨을 만듭니다.
docker volume create portainer_data
Portainer 컨테이너도 만듭니다.
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
다음 URL에서 브라우저로 웹 앱에 액세스할 수 있습니다: "http://localhost:9000".처음 로그인할 때 Portainer 관리 자격 증명을 설정하라는 메시지가 표시됩니다.
웹 앱에서 다음 메뉴와 버튼을 따릅니다. (컨테이너 > 컨테이너 추가 > 채우기 설정 > 컨테이너 배포)
Portainer에서 "마운트" 볼륨을 생성하는 데 문제가 발생하여 컨테이너 볼륨을 생성할 때 "바인딩"을 클릭해야 한다는 것을 깨달았습니다.다음은 마운트된 볼륨이 호스트에 바인딩된 상태에서 내 컨테이너를 생성할 때 작동했던 볼륨 바인딩 설정을 보여줍니다.
추신: 저는 도커 19.035와 Portainer 1.23.1을 사용하고 있습니다.
컨테이너에서 호스트 디렉토리를 마운트하는 것과 동일한 요구 사항이 있었고 volume mount 명령을 사용했습니다.그러나 테스트 도중 컨테이너 내부에서도 파일을 만들고 있다는 것을 알게 되었지만, 몇 가지 조사를 통해 호스트 시스템에서 사용되는 실제 파일 시스템과 심볼릭 링크에 불과하다는 것을 알게 되었습니다.
공식 웹사이트의 인용문:
실행 중인 이전 시작 컨테이너가 없는지 확인합니다.
앱 디렉터리에서 다음 명령을 실행합니다.
x86-64 Mac 또는 Linux 장치:
docker run -dp 3000:3000 \ -w /app -v "$(pwd):/app" \ node:12-alpine \ sh -c "yarn install && yarn run dev"
Windows(PowerShell):
docker run -dp 3000:3000 \ -w /app -v "$(pwd):/app" \ node:12-alpine \ sh -c "yarn install && yarn run dev"
Apple 실리콘 Mac 또는 다른 ARM64 장치:
docker run -dp 3000:3000 \\ -w /app -v "$(pwd):/app" \\ node:12-alpine \\ sh -c "apk add --no-cache python2 g++ make && yarn install && yarn run dev"
설명:
dp 3000:3000
모드에서 을 생성합니다.w /app
또는 합니다.v "$(pwd):/app"
. /app 디렉토리는 /app 디렉토리입니다.node:12-alpine
사용할 이미지.
참고로 이것은 우리 앱의 기본 이미지입니다.Dockerfile
sh -c "yarn install && yarn run dev"
사령부
우리는 다음을 사용하여 셸을 시작합니다.sh
Bash가 및 중(알파에가 Bash없음)yarn install
한 다음 중인 실 모든을존의설후실사용다니합치한을성▁to다니사▁install합용▁yarn.run dev
가 찾면가아보에서 ,package.json
을 볼 수 .nodemon
.
언급URL : https://stackoverflow.com/questions/23439126/how-to-mount-a-host-directory-in-a-docker-container
'programing' 카테고리의 다른 글
"pip 설치"와 "python-m pip 설치"의 차이점은 무엇입니까? (0) | 2023.05.16 |
---|---|
응용 프로그램의 다른 인스턴스가 실행 중인지 확인하는 방법 (0) | 2023.05.16 |
사설 Github repo를 npm 종속성으로 사용하는 방법 (0) | 2023.05.16 |
.find() mongoose에서 아무것도 발견되지 않으면 조치를 취합니다. (0) | 2023.05.16 |
파일의 특정 행을 git에 커밋 (0) | 2023.05.16 |