도커가 어떤거다 하는건 대강 알겠는데,
결국 도커로 어떤 환경이 만들어졌을때 내가 원하는 파일을 컴파일 하는건 어떡하라는거야?
예를 들어 도커에서 우분투를 열었을때
그 안에서 디렉토리들을 이것저것 뒤져보니 내 데탑과는 별도의 공간 같은데,
내가 원하는 프로젝트를 도커로 받은 환경으로 돌려야하잖아?
근데 그걸 어디서 하는지 못찾겠어
심지어는 하나의 큰 프로젝트에 여러 도커들을 활용할 수도 있다는 것 같은데, 저기서 막힌다
도커가 어떤거다 하는건 대강 알겠는데,
결국 도커로 어떤 환경이 만들어졌을때 내가 원하는 파일을 컴파일 하는건 어떡하라는거야?
예를 들어 도커에서 우분투를 열었을때
그 안에서 디렉토리들을 이것저것 뒤져보니 내 데탑과는 별도의 공간 같은데,
내가 원하는 프로젝트를 도커로 받은 환경으로 돌려야하잖아?
근데 그걸 어디서 하는지 못찾겠어
심지어는 하나의 큰 프로젝트에 여러 도커들을 활용할 수도 있다는 것 같은데, 저기서 막힌다
너가 docker build할때 인자로 넘기는 path가 docker daemon으로 넘어가서 그 아래 경로들에 접근 가능함. 거기서 RUN이나 COPY같은걸로 컴파일할거 하는거고
왜 굳이 컴파일을 컨테이너에서 하냐? 컴파일 환경이 노드에 종속되지 않으니까. "It works on my machine!" 피하려고. 그래서 빌드용 이미지를 위해 multi stage build라는것도 있다
답변할 사람은 이 사람 질문도 해석해주면 고맙겠어
도커를 열었는데 막상 열고 나서 어떡해야할지 모르겠단 질문이었어
나도 사실 질문요지를 모르겠음
도커를 열었다는게 뭔지도 모르겠고. 컨테이너에 exec / attach했단거냐?
도커 처음 써봐서 어떻게 질문을 해야할지 모르겠는데, 도커를 열었다고 말한건 예를 들어 docker run -it ubuntu 이런식으로 했단거였어
이러면 우분투로 들어가는데, 여기서 이제 뭘 해야 프로그램을 실행할 수 있지? 하는거였어
가령 내 컴퓨터에 있는 main.py라는걸 도커를 이용해서 실행하고 싶다, 이런 뜻
그냥 docker run -it ubuntu하면 네 파일시스템과 완전히 격리된 컨테이너가 생성된다. 사실 ubuntu 이미지는 뭘 컴파일하기엔 적합하지 않다. 보통 python:buster나 node:stretch golang:bullseye와 같이 컴파일하려는 언어에 해당하는 이미지를 쓴다
이미 빌드된 이미지를 run하는데 호스트의 파일 예컨대 main.py를 돌리고 싶다면 -v app:app 과 같이 마운트가 필요하다. 이건 일반적으로자주 사용하는 패턴이기도하다
아 뭔가 어떤 느낌인지 알거같다 고마워 내가 잘몰라서 질문을 이상하게 한것 같아
mount, bind mount