인프런 커뮤니티 질문&답변

msj990305님의 프로필 이미지

작성한 질문수

실리콘밸리 엔지니어와 함께하는 리눅스 실전

리눅스 소개 및 설치

docker compose up이 안돼요.

해결된 질문

작성

·

198

1

Screen Shot 2024-07-31 at 6.28.05 PM.pngScreen Shot 2024-07-31 at 6.28.57 PM.png

올바르게 코드를 쳤음에도 불구하고,

Screen Shot 2024-07-31 at 6.31.09 PM.png

이런 에러가 뜹니다.

맥 환경에서 돌리는게 아니라, docker를 통해 ubuntu환경을 불러와 거기에서 돌리는거라 apt-get, useradd와 같은 명령어가 실행이 돼야하는걸로 알고있는데, 왜 명령어를 fetch할 수 없는걸까요? ㅠㅠ

답변 3

0

msj990305님의 프로필 이미지
msj990305
질문자

Screen Shot 2024-08-01 at 3.14.13 PM.png

성공적으로 compose build를 한 것 같은데,

docker ps 를 입력했을 때, 아무런 정보가 안뜨는데 괜찮은건가요?

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

네 이제 docker compose up하시면 될 듯 합니다.

docker ps명령어는 현재 실행되고 있는 다커들을 볼때 사용하는 겁니다.

0

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

안녕하세요 msj990305님,

에러 메세지로 보기에는 뭔가 파일을 다운 받다가 잘못 된 거 같은데, docker compose build를 한번 다시 해보세요. 그래도 잘 안된다면, 한번 첫번째 라인을 FROM ubuntu:24.10로 한번 바꿔보세요.

현재 https://hub.docker.com/_/ubuntu/tags 을 보니 그게 최신 버전인거 같은데, 그걸로 바꿔서 사용하셔더 아무 문제 없을 겁니다.

 

msj990305님의 프로필 이미지
msj990305
질문자

Screen Shot 2024-07-31 at 8.16.28 PM.png

이런 에러가 뜹니다. 기존에 만들어뒀던 dockerfile을 지우고 다시했는데도 already exists라는 에러가 뜨는데 이런 경우는 어떻게 해결해야할까요?

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

한번 다음의 코드를 사용해 보시겠어요?

# Use Ubuntu as the base image
FROM ubuntu:24.10

# Install lecture related packages
RUN apt-get update && apt-get install -y openssh-server sudo systemd systemd-sysv net-tools tcpdump ethtool plocate man-db vim traceroute fdisk dnsutils iputils-ping cron jq
ARG DEBIAN_FRONTEND=noninteractive
RUN apt install ntp -y
RUN yes | unminimize

# Add a user 'user' with a password 'password' (You should change this)
# RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1001 ubuntu
RUN id -u ubuntu &>/dev/null || useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1001 ubuntu
RUN echo 'ubuntu:password' | chpasswd

# Setup SSH
RUN mkdir -p /var/run/sshd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise, the user is kicked off after login
RUN sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config

# Expose the SSH port
EXPOSE 22

RUN apt install dumb-init

# Start the SSH service
COPY bootstrap.sh /root/
RUN chmod +x /root/bootstrap.sh

ENTRYPOINT ["/usr/bin/dumb-init", "--"]
msj990305님의 프로필 이미지
msj990305
질문자

제공해주신 코드를 사용해봤으나 똑같은 문제로 에러가 떠요 ㅠㅠ

Screen Shot 2024-08-01 at 2.21.41 AM.png

미쿡엔지니어님의 프로필 이미지
미쿡엔지니어
지식공유자

이상하네요. 새로 볼륨을 만들면 문제가 없어야 하는데.. 다른 유저 분도 이러한 에러가 났었는데 여기 링크한번 보시겠어요?

https://www.inflearn.com/community/questions/1275055/%EC%97%90%EB%9F%AC%EA%B3%B5%EC%9C%A0-dockercompose-up-%EC%8B%A4%ED%96%89%EC%8B%9C-user-amp-x27-ubuntu-amp-x27-already-exists-%EC%98%A4%EB%A5%98-%EB%B0%9C%EC%83%9D

 

0

안녕하세요, 인프런 AI 인턴입니다.

msj990305님의 문제는 Dockerfiledocker-compose.yml 사용 중 발생하는 패키지 설치 오류와 관련이 있습니다. 이미지를 빌드하는 과정에서 apt-get updateapt-get install을 통해 필요한 패키지를 설치하려 할 때, “Failed to fetch”와 같은 네트워크 연결 문제나 저장소 문제로 패키지를 불러올 수 없는 경우에 이러한 오류 메시지가 출력될 수 있습니다.

이와 유사한 문제를 해결하기 위한 기존 질문에 대한 답변을 찾았습니다. 로컬 개발 환경 내에서 docker-compose up 실행 시 발생할 수 있는 user 생성 및 패키지 설치 관련 이슈를 다룬 것으로, 이와 비슷한 상황에서 도움이 될 수 있습니다:

  • [에러공유] dockercompose up 실행시 user ‘ubuntu’ already exists 오류 발생: 질문자는 Dockerfile 내에서 useradd 명령어를 통해 사용자를 추가하려 할 때 이미 사용자가 존재한다는 오류를 마주쳤으며, 이를 해결하기 위해 조건문을 통한 사용자 확인 및 추가 절차를 구현하고 있습니다. (원문 보기)

msj990305님의 경우, 문제는 apt-get을 통한 패키지 설치가 실패하는 부분에 있는데, 이것은 네트워크 연결 문제, 저장소 접근 문제, 또는 Dockerfile 내 명령어 실행 순서와 관련해서 발생할 수 있습니다. 오류 해결의 첫 단계로 apt-get update를 실행 후 패키지를 설치하려는 명령어 바로 앞에 다음과 같은 네트워크 설정을 확인하거나 추가하는 것을 권장합니다:

RUN apt-get update && apt-get install -y openssh-server sudo net-tools

위 명령어에 -o Acquire::http::proxy="YOUR_PROXY_URL"을 추가하여 프록시를 통한 접근 문제를 해결할 수도 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.