해결된 질문
작성
·
201
1
올바르게 코드를 쳤음에도 불구하고,
이런 에러가 뜹니다.
맥 환경에서 돌리는게 아니라, docker를 통해 ubuntu환경을 불러와 거기에서 돌리는거라 apt-get, useradd와 같은 명령어가 실행이 돼야하는걸로 알고있는데, 왜 명령어를 fetch할 수 없는걸까요? ㅠㅠ
답변 3
0
0
안녕하세요 msj990305님,
에러 메세지로 보기에는 뭔가 파일을 다운 받다가 잘못 된 거 같은데, docker compose build
를 한번 다시 해보세요. 그래도 잘 안된다면, 한번 첫번째 라인을 FROM ubuntu:24.10
로 한번 바꿔보세요.
현재 https://hub.docker.com/_/ubuntu/tags 을 보니 그게 최신 버전인거 같은데, 그걸로 바꿔서 사용하셔더 아무 문제 없을 겁니다.
이런 에러가 뜹니다. 기존에 만들어뒀던 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", "--"]
0
안녕하세요, 인프런 AI 인턴입니다.
msj990305님의 문제는 Dockerfile
과 docker-compose.yml
사용 중 발생하는 패키지 설치 오류와 관련이 있습니다. 이미지를 빌드하는 과정에서 apt-get update
및 apt-get install
을 통해 필요한 패키지를 설치하려 할 때, “Failed to fetch”와 같은 네트워크 연결 문제나 저장소 문제로 패키지를 불러올 수 없는 경우에 이러한 오류 메시지가 출력될 수 있습니다.
이와 유사한 문제를 해결하기 위한 기존 질문에 대한 답변을 찾았습니다. 로컬 개발 환경 내에서 docker-compose up
실행 시 발생할 수 있는 user 생성 및 패키지 설치 관련 이슈를 다룬 것으로, 이와 비슷한 상황에서 도움이 될 수 있습니다:
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"
을 추가하여 프록시를 통한 접근 문제를 해결할 수도 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
네 이제
docker compose up
하시면 될 듯 합니다.docker ps
명령어는 현재 실행되고 있는 다커들을 볼때 사용하는 겁니다.