반응형
1. dockerfile에서 apt-get install 하여 sudo 설치하기
도커에서 elasticsearch 이미지를 컨테너화 하여 쉘에 접근하였는데 sudo가 안되는 현상이 발생하였다.
sudo가 안되다 보니 root접근도 안되어 dockerfile에서 직접 sudo를 install 하기로 함.
내가 받은 elasticsearch의 기본 dockerfile은 다음과 같음
ARG ELASTIC_VERSION
# https://www.docker.elastic.co/
FROM docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
# Add your elasticsearch plugins setup here
# Example: RUN elasticsearch-plugin install analysis-icu
해당 dockerfile에 아래의 내용을 추가하여 sudo를 설치하였고, elasticsearch 라는 유져에게 soduers 파일에 권한 추가함.
ARG ELASTIC_VERSION
# https://www.docker.elastic.co/
FROM docker.elastic.co/elasticsearch/elasticsearch:${ELASTIC_VERSION}
# Add your elasticsearch plugins setup here
# Example: RUN elasticsearch-plugin install analysis-icu
USER root
RUN apt-get update
RUN apt-get install sudo
RUN echo 'root:changeme' | chpasswd
RUN echo 'elasticsearch:changeme' | chpasswd
RUN echo 'elasticsearch ALL=(ALL:ALL) ALL' >> /etc/sudoers
USER elasticsearch
2. ubuntu에서 man 사용하기
1. 을 해결한 후에 tab 자동완성을 사용하려 하는데 자동완성이 안되어 man ls 명령어를 쳐보니 다음과 같은 안내 메세지가 나옴
This system has been minimized by removing packages and content that are not required on a system that users do not log into.
To restore this content, including manpages, you can run the 'unminimize' command.
You will still need to ensure the 'man-db' package is installed.
해당 내용은 도커는 사용자가 로그인하는 환경이 아니기 때문에 불필요한 패키지는 삭제되었다는 내용이므로 내용복구를 원하면 unminize 명령어를 사용하라는 내용임.
해당 명령어를 사용하려면 'man-db' 패키지를 설치한 후에 unminimize 를 해주면 됨
sudo apt install man-db
sudo unminimize
sudo unminimize 시 y/n 이 뜨는데 y를 눌러서 완료하면 man 명령어 사용이 가능해진다.
반응형