Container/Docker 40

[Docker CE] dockerfile 명령어 정리 (3) (COPY, ADD, ENV, ARG, WORKDIR)

1편 (RUN, CMD, ENTRYPOINT) : https://nirsa.tistory.com/66?category=868315 2편 (ONBUILD, STOPSIGNAL, HEALTHCHECK) : https://nirsa.tistory.com/68?category=868315 4편 (USER, LABEL, EXPOSE, VOLUME) : https://nirsa.tistory.com/70?category=868315 들어가기전에... 간혹 override 라는 단어가 등장 하는데, 일반적으로 override는 물려받은 값(변수 등)을 다르게 만들어 생성하는 개념입니다. CMD에 선언한 명령을 ls라고 선언 후 conatiner run을 사용할 때 ps 를 사용 하거나, ENTRYPOINT에서 선언한..

Container/Docker 2020.01.19

[Docker CE] dockerfile 명령어 정리 (2) (ONBUILD, STOPSIGNAL, HEALTHCHECK)

1편 (RUN, CMD, ENTRYPOINT) : https://nirsa.tistory.com/66?category=868315 3편 (COPY, ADD, ENV, ARG, WORKDIR) : https://nirsa.tistory.com/69?category=868315 4편 (USER, LABEL, EXPOSE, VOLUME) : https://nirsa.tistory.com/70?category=868315 4. ONBUILD ONBULD는 조금 특이하게 처음 사용한 Dockerfeil 에서 빌드할 때(이미지 생성) 실행되는 명령이 아닙니다. ONBUILD 명령을 사용했던 이미지를, 다른 Dockerfile에서 FROM image를 사용하여 빌드 했을 때 동작 합니다. 일반적으로 사용하는 명령은 ..

Container/Docker 2020.01.18

[Docker CE] dockerfile 명령어 정리 (1) (RUN,CMD,ENTRYPOINT)

2편 (ONBUILD, STOPSIGNAL, HEATHCHECK) : https://nirsa.tistory.com/68?category=868315 3편 (COPY, ADD, ENV, ARG, WORKDIR) https://nirsa.tistory.com/69?category=868315 4편 (USER, LABEL, EXPOSE, VOLUME) : https://nirsa.tistory.com/70?category=868315 들어가기전에... Dockerfile과 같은 디렉터리에 있는 모든 파일들을 컨텍스트(context)라고 합니다. docker build 를 사용하여 이미지를 생성할 때 컨텍스트 모두를 Docker 데몬에 전송하기 때문에 / 디렉토리에 Dockerfile을 생성하던가 하면 시스템..

Container/Docker 2020.01.17

[Docker CE] Dockerfile build error (oci runtime create failed container_linux.go:346: starting container process caused)

Docker 파일 빌드할 때 발생하는 "oci runtime create failed container_linux.go:346: starting container process caused "~~": executable file not found in $PATH": unknown 에러는 문법 오류로 인해 발생 합니다. starting container process caused 뒤에 문제가 된 문법이 나오게 되는데 해당 부분을 Dockerfile에서 찾아 수정 해주어야 합니다. 일반적으로 RUN 명령에서 exec 형식을 사용할 때 명령 인수에 환경 변수를 지정할 수가 없는데, 환경 변수를 지정 하였거나 문법에 어긋난 명령을 입력할 때 자주 발생 합니다. FROM centos:7 RUN ["yum -y i..

Container/Docker 2020.01.17

[Docker CE] 간단히 보는 Dockerfile 개념(명령어 종류, 빌드, 이미지 레이어)

Dockerfile 이란? 도커는 기본적으로 이미지가 있어야 컨테이너를 생성하고 동작시킬 수 있습니다. dockerfile은 필요한 최소한의 패키지를 설치하고 동작하기 위한 자신만의 설정을 담은 파일이고, 이 파일로 이미지를 생성(빌드)하게 됩니다. 패키지 설치, 환경 변수 변경, 설정 파일 변경 등 다양한 작업을 하나하나 컨테이너를 만들고 설정을 적용할 필요 없이 dockerfile을 사용하여 적용할 수 있고, 유저의 실수로 인한 설정 누락 예방 등 다양한 장점이 있습니다. 위에서 빌드할 때 이미지의 이름을 web_img 로 정했으므로 web_img 라는 이미지가 생성 되었습니다. 물론 단순히 패키지 설치뿐만 아니라 컨테이너 안에서의 환경 변수나 여러가지 설정들을 할 수 있지만 이 글에서는 간단한 개념..

Container/Docker 2020.01.17

[Docker CE] 도커 이미지 삭제 에러 (error response from daemon: conflict: unable to remove repository reference "busy box" (must force) - container xxx is using its referenced image xxx)

도커 이미지 삭제를 시도할 때 발생하는 에러 입니다. (error response from daemon: conflict: unable to remove repository reference "busy box" (must force) - container xxx is using its referenced image xxx) 해당 에러는 이미지 busy box를 삭제 할 때에 어떠한 컨테이너가 이미 삭제할 이미지를 참조중이기 때문에(컨테이너의 실행 유무는 상관없이) 발생하는 에러 입니다. 에러를 자세히 보면 컨테이너ID 0977bb62a226 가, 이미지ID 6d5fcfe5ff17 을 참조중이라고 합니다. 바로 docker container rm 0977bb62a226 을 입력해주어도 상관 없지만, 확인을..

Container/Docker 2020.01.16

[Docker CE] 사용하지 않고 있는 이미지/컨테이너 일괄 삭제

사용하지 않고 있는 이미지/컨테이너를 일괄 삭제 할 수 있는 명령어 입니다. 하지만 종료 상태인 컨테이너가 모두 삭제되고, 이미지 파일로 생성된 컨테이너가 모두 종료 상태라면 이미지 파일까지 삭제되기 때문에 꼼꼼히 확인 후 사용 하여야 하며, 되도록 하나씩 확인해가며 지우는게 좋습니다. docker system prune -a f 옵션 : 강제 삭제

Container/Docker 2020.01.16

[Docker CE] 도커 이미지 활용 (이미지 파일 생성, 이미지 생성, 이미지 삭제)

이미지를 사용하여 컨테이너를 생성할 수 있듯이, 컨테이너를 사용하여 이미지를 생성할 수 있고, 해당 이미지 또는 컨테이너의 정보를 백업하기 위해 정기적으로 생성 후 파일로 남겨두어 별도로 백업 시스템을 구성할 수 있습니다. 그리고 아래 명령어들의 차이는 비슷해 보일 수 있지만 사용중인 컨테이너를 활용하여 이미지를 생성하는지, 이미지파일을 로컬로 다른 서버에 옮기기 위해 기존에 있는 이미지를 tar 파일로 생성하여 다시 이미지를 로드할 수 있는지의 차이가 있습니다. https://nirsa.tistory.com/56?category=868315 1. 사용중인 컨테이너를 이미지로 생성 기존에 사용중이던 컨테이너를 사용하여 이미지를 생성할 수 있습니다. 아래를 보면 nirsa 라는 사용자를 지정하고 (a옵션)..

Container/Docker 2020.01.16

[Docker CE] 도커 컨테이너 기본 명령어 정리 (2)

1편을 안보신 분들은 아래 링크에서 확인해주시고 혹시 따라서 타이핑 해보시는분이 있다면 docker hub 에 로그인 후 docker pull centos:7 을 다운받고 컨테이너를 만들어주세요. (컨테이너 생성 명령은 1편 참고) 도커 컨테이너 기본 명령어 정리 (1) : https://nirsa.tistory.com/57?category=868315 13. 실행중인 컨테이너 연결 실행중인 컨테이너와 연결하는 명령입니다. docker container attach [컨테이너명] 종료 : Ctrl+p, Ctrl+q 둘 다 입력 다만 이 명령을 사용할때엔 주의할 점이 있는데 연결 후 Ctrl+p 와 Ctrl+q 를 입력하여 컨테이너에서 벗어나야 합니다. 만약 exit 를 입력하면 컨테이너가 종료 되어버립니..

Container/Docker 2020.01.15