목록DevOps/Docker (21)
우노
문제 상황 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (Details: [2] No such file or directory) docker ps 명령어를 통해 docker 정상 작동을 확인했음에도 불구하고, IntelliJ에서 Docker 연결이 불가능한 상황 해결 방법 터미널에서 아래 명령어를 실행합니다. # {name}에는 자신이 macOS에 설정한 값을 넣는다. sudo ln -s /Users/{name}/.docker/run/docker.sock /var/run/ 이후, Settings → 빌드, 실행, 배포 → Docker → 아래와 같이 재설정합니다. 참고 htt..
들어가기 앞서, 컨테이너 생성 시, Dockerfile 하단 지시문(CMD, ENTRYPOINT)을 통해 컨테이너 실행 상태를 유지해주지 않는다면, 컨테이너는 생성된 뒤 실행 상태를 유지하지 않고 종료됩니다. 따라서, 해당 포스팅에선 컨테이너 실행 상태를 유지할 수 있는 간단한 지시문을 다뤄보겠습니다. 지시문 예제 FROM ubuntu CMD ["sh", "-c", "tail -f /dev/null"] tail 로그 파일 또는 텍스트 파일의 내용을 보여주는 명령어입니다. f tail 명령어의 옵션 중 하나로, 파일의 내용을 실시간으로 모니터링하고 파일에 새로운 내용이 추가될 때마다 화면에 표시합니다. /dev/null 표준 출력(standard output)을 버릴 때 사용되는 특별한 파일입니다. 이 파..
들어가기 앞서, Dockerfile 하단 CMD, ENTRYPOINT 지시문 앞에 “sh -c”를 추가하는 경우가 있습니다. 실제로 CMD, ENTRYPOINT 지시문은 “sh -c” 추가 여부에 따라 실행 방식에 차이가 발생하게 됩니다. 해당 포스팅에선, 실행 방식에 따른 차이에 대해서 설명하겠습니다. 지시문 앞에 “sh -c”를 추가하는 경우 FROM ubuntu CMD ["sh", "-c", "mkdir test && tail -f /dev/null"] 원하는 작업은, "mkdir test” 명령어로 test 폴더를 생성하고 "tail -f /dev/null” 명령어로 컨테이너 실행 상태를 유지하는 것입니다. 만약, 지시문 앞에 “sh -c”를 추가한다면 해당 명령어는 원하는 의도대로 실행됩니다. ..
들어가기 앞서, Dockerfile에서 Private Repo를 Clone하기 위해선 Private Repo 접근 권한이 있는 Git 계정을 등록하는 단계가 필요합니다. 해당 포스팅에선 Dockerfile에서 Git 계정 등록 및 Private Repo를 Clone하는 방법에 대해서 다뤄보겠습니다. Git 계정 등록 및 Private Repo Clone 예제 FROM apache/airflow:2.2.4-python3.8 USER root RUN apt-get update && \ apt-get install git -y # Git 계정 등록 RUN git config --global user.name "유저명" RUN git config --global user.email "이메일명" # 개인 액세스 ..
들어가기 앞서, 해당 포스트에서는, docker build 시 특정 경로에 있는 Dockerfile을 빌드하는 방법에 대해서 다뤄보겠습니다. 특정 경로의 Dockerfile 빌드 방법 docker build -t -f . # docker build -t mlflow -f /mlflow/Dockerfile . 주의 사항 Dockerfile에서 상대 경로를 사용해 COPY를 사용한다면, 기본 PATH는 docker build 명령어를 실행한 PATH가 됩니다. 참고 https://docs.docker.com/engine/reference/commandline/build/
요약 CMD 컨테이너를 생성할 때만 실행됩니다. (docker run) 컨테이너 생성 시, 추가적인 명령어에 따라 설정한 명령어를 수정할 수 있습니다. ENTRYPOINT 컨테이너를 시작할 때마다 실행됩니다. (docker start) 컨테이너 시작 시, 추가적인 명령어 존재 여부와 상관 없이 무조건 실행됩니다. CMD, ENTRYPOINT 명령어 작성 방법 CMD ["", "", ""] CMD ENTRYPOINT ["", "", ""] ENTRYPOINT CMD 예제 Dockerfile FROM ubuntu CMD ["/bin/echo", "Before"] docker run 실행 (추가 명령어가 없을 때) docker run --name # Before docker run 실행 (추가 명령어가 있을 ..
들어가기 앞서, 해당 포스트에선, Docker에서 매개 변수 및 환경 변수를 다루는 방법에 대해서 다뤄보겠습니다. 이미지 빌드 시 Dockerfile 내부로 매개 변수 전달 Dockerfile # FROM절 이전에 선언한 매개변수는 FROM절 이전에만 사용할 수 있습니다. ARG imageversion FROM python:${imageversion} # FROM절 이후에 선언한 매개변수는 FROM절 이후에만 사용할 수 있습니다. ARG foldername RUN mkdir ${foldername} 입력 받을 매개변수를 ARG를 사용해 미리 선언해야합니다. 이미지 빌드 docker build -t . --build-arg imageversion="3.9.15" --build-arg foldername="..
Docker run 명령어 기본 구조 docker run 은 Image 로 Container 를 생성하는 명령어입니다. docker run docker run -d -it --name containername imagename bash Docker run 옵션 종류 -i, --interactive 표준 입력(stdin)을 활성화하며, 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지합니다. 보통 이 옵션을 사용하여 Bash 에 명령을 입력합니다. -t, --tty TTY 모드(pseudo-TTY)를 사용합니다. Bash를 사용하려면 이 옵션을 설정해야 합니다. 이 옵션을 설정하지 않으면 명령을 입력할 수는 있지만, 셸이 표시되지 않습니다. --name 컨테이너 이름을 설정합니다. -d, ..
에러 메세지 Error response from daemon: conflict: unable to delete "" (must be forced) - image is referenced in multiple repositories 해결 방법 "-f" 를 옵션으로 주어, 이미지를 강제 삭제 docker rmi -f "IMAGE ID"
에러 메세지 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 원인 docker service 실행이 안되어있는 것 해결 방법 sudo systemctl start docker sudo systemctl enable docker # 옵션 : 시스템 부팅 시, 도커를 시작하도록