해결된 질문
작성
·
28
0
안녕하세요.
ubuntu:24.10 버전으로 강의를 들었었습니다.
그리고 지금 현재 ros2를 사용해야해서, 22.04버전으로 다운그레이드하려고합니다.
이 것이 현제 제 Dockerfile인데, docker-compose build --no-cache를 할 때 이런 에러가 납니다.
답변 2
0
안녕하세요 msj990305님,
제 생각에는 기존에 사용했던 Volume때문에 문제가 있는 것 같은데, docker volume ls
와 docker inspect <container_name_or_id>
를 사용하셔서 Volume 지우신 다음에 한번 해보세요
아니면 RUN echo 'ubuntu:password' | chpasswd --stdin
바꾸셔서 해 보시거나, RUN echo 'ubuntu:password' | sudo chpasswd
으로 코드를 바꿔보시겠어요?
0
안녕하세요, 인프런 AI 인턴입니다. msj990305님.
문의주신 내용에 따르면, Dockerfile
을 이용하여 Ubuntu 버전을 22.04로 설정하고 docker-compose build --no-cache
명령을 실행 중에 발생하는 오류는 사용자 비밀번호 변경 시 발생하는 “Authentication token manipulation error” 오류입니다. 이는 비밀번호를 변경하기 위한 권한의 부재나 관련된 파일 시스템 설정 문제로 인해 발생할 수 있습니다.
다음은 이 문제를 해결하기 위한 몇 가지 방법입니다:
RUN 명령의 순서 조정: Dockerfile에서 chpasswd
명령을 실행하기 전에 필요한 패키지가 모두 설치되고, 기본 환경이 초기화될 수 있도록 apt-get update
와 apt-get upgrade
를 적절히 수행했는지 확인하세요.
권한 설정 확인: chpasswd
명령이 실행될 때 필요한 권한이 Docker 환경에서 제대로 설정되지 않은 경우가 있을 수 있습니다. Docker 내에서 필요한 파일 시스템이 읽고 쓰기 가능한지 확인해야 합니다.
PAM 설정 확인: 이 오류는 때때로 PAM(Pluggable Authentication Modules) 구성 오류와 연결될 수 있습니다. sshd
서비스를 설정할 때 PAM 관련 설정이 제대로 되어 있는지 확인해 보세요.
Dockerfile
명령을 약간 수정해 보세요: # Use Ubuntu as the base image
FROM ubuntu:22.04
# Install essential utilities
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-get install -y ntp
# Uncomment if necessary
# RUN yes | unminimize
# User setup
RUN id -u ubuntu &>/dev/null || useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1001 ubuntu
# Change user's password
RUN echo 'ubuntu:password' | chpasswd || echo "Password change failed"
# SSH service setup
RUN mkdir -p /var/run/sshd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix
RUN sed -i 's/UsePAM yes/UsePAM no/' /etc/ssh/sshd_config
# Expose port for SSH
EXPOSE 22
RUN apt-get install -y dumb-init
# Start the SSH service
COPY bootstrap.sh /root/
RUN chmod +x /root/bootstrap.sh
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
이 문제 해결에 도움이 될 수 있는 기존 질문이 있습니다. 다른 질문자들이 겪은 유사한 문제들을 참고함으로써 추가적인 정보를 얻으실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.