본문 바로가기

docker15

멀티 스테이즈 빌드 도커 파일을 통해 도커 이미지를 만들었는데 이때 최적화의 문제가 있다. 멀티 스테이즈 빌드를 활용하면 도커 이미지를 매우 효율적으로 관리할 수 있다. 도커 파일은 기본적으로 도커 빌드를 통해 도커 이미지를 만드는 형태로 되어있다. 같은 Dockerfile에 FROM명령어를 작성하게 되면 Stage로 구분하게 된다. 즉 FROM 명령어가 나올 때 마다 스테이지가 되는 것이다. 하지만 Stage가 많이 생긴다고 해서 Docker Image가 많이 생기는 것이 아니다. 가장 마지막에 실행된 스테이지 영역이 Docker Image로 생성된다. 이런걸 막기위해 Stage의 산출물을 COPY해서 다음 스테이지에 넘겨 작성하는 것을 멀티 스테이즈 빌드라고 한다. 멀티 스테이즈 빌드는 도커 이미지를 줄이는 용도로 많이.. 2024. 3. 15.
Dockerfile이란 Dockerfile 명령어 From : 생성하려는 이미지의 베이스 이미지를 지정한다. MAINTAINER : 이미지 빌드 작성자 정보 LABEL : 이미지 작성 목적, 버전, 설명, 라이선스 정보 등 RUN : 설정된 기본 이미지에 패키지 설치, 업데이트, 명령 실행 CMD : 성성된 이미지를 컨테이너로 실행할 때 실행되는 명령 / 다양한 명령어를 지정하는 경우 ENTRYPOINT : 컨테이너 실행시 명령어 및 인자 값을 전달해 실행 / 항상 수행할 명령어 지정 COPY : 호스트 환경의 파일, 디렉토리를 이미지 안에 복사 / 단순 복사 작업만 지원 ADD : 단순 복사 이외에 URL 주소 다운로드, 압축 파일 풀어서 파일과 디렉토리 복사 ENV : 각종 환경 변수 지정 / RUN, WORKDIR 등에서.. 2024. 3. 15.
Container 개조하기, 이미지 옮기기 컨테이너 파일복사 및 리눅스 명령어 실행을 통해 내부 정보를 변경할 수 있다. 컨테이너에 접속 docker container exec -it [컨테이너명] /bin/bash exec명령어를 통해 작동하는 container 속에 접근할 수 있다. -it 는 컨테이너에 접속할 수 있는 명령어이다. run 명령어의 맨 뒤에 /bin/bash를 붙이게 되면 실행과 동시에 컨테이너 내부로 접속한다. 이 경우 deamon프로그램 보다 bash가 먼저 실행되며 웹 서버거 바로 열리지는 않는다. 접속한 뒤 할 것을하고 웹 서버를 명령어로 켜줘야한다. 명령어 : httpd-foreground 이미지 옮기기 네트워크가 안돼서 도커 허브에서 이미지를 다운받을 수 없는 환경이거나 직접 만든 이미지를 다른 다른 저장소로 옮기고.. 2024. 3. 15.
Container 이미지 만들기 도커에서 컨테이너 이미지를 만드는 방법은 크게 두가지가 있다. 컨테이너로 이미지를 추출하기 -commit Dockerfile 스크립트로 이미지를 정의해서 추출하기 1. Commit 명령어를 통해 실행중인 Container를 Image로 만들 수 있다. 아파치 컨테이너 준비 docker run —name webserver -d -p 80:80 httpd index.html 변경해보기 컨테이너를 변환한 새로운 이미지 생성 docker commit webserver my-web docker images my-web 이미지로 컨테이너 생성 docker run —name webserver -d -p 80:80 my-web 2. Dockerfile 스크립트로 이미지 만들기 Dockerfile을 만든다. docker.. 2024. 3. 15.
볼륨, 바인드 마운트 볼륨 : 스토리지의 한 영역을 분할한 것 마운트 : 마운트란 연결하다라는 의미로 운영체제 혹은 소프트웨어 관리하에 두는 일 컨테이너 속에 데이터가 있다면 컨테이너가 삭제될 때 데이터도 함께 소멸된다. 처음부터 컨테이너 외부에 데이터를 두고 접근해 사용할 수 있다. 이를 데이터 퍼시스턴스(Data persistency)라고 한다. 실무에서는 새 이미지를 빌드하고 오래된 컨테이너를 삭제한 뒤 새 이미지에서 실행한 컨테이너로 대체하는 방식을 사용해 애플리케이션을 업데이트 한다. 컨테이너에서 파일을 다루는 방식으로 볼륨 마운트와 바인드 마운트가 있다. 볼륨 마운트란 도커 엔진이 관리하는 영역에서 만들어진 볼륨을 컨테이너에 디스크형태로 마운트 하는 것이다. 임시 목적으로 사용하고 자주 쓰지만 지우면 안되는 파일을.. 2024. 3. 15.
Container간의 파일 복사하기 Host = 도커 엔진을 실행중인 PC 파일 복사는 컨테이너 → Host, Host → 컨테이너 양방향 모두 가능하다. 파일 복사 명령어 : docker container cp [원본 경로] [복사할 경로] 형식 : docker container cp host경로 컨테이너_이름:컨테이너_경로 형식 : docker container cp 컨테이너_이름:컨테이너_경로 host_경로 Container가 stop된 상태에서 파일을 바꾸어 유지할 수 있다. 하지만 Container를 삭제한 뒤 다시 생성하면 초기의 파일 상태로 되돌아간다. 휘발되는 것이다. 2024. 3. 15.