티스토리 뷰

Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
FROM ubuntu:latest
 
ARG DEBIAN_FRONTEND=noninteractive 
ENV USER user1
 
ENV TZ=US/Denver
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN sed -i'' 's/archive\.ubuntu\.com/us\.archive\.ubuntu\.com/' /etc/apt/sources.list
 
RUN apt-get update
RUN apt-get install -y ssh openssh-server python3 python3-dev python3-pip git vim sudo
RUN mkdir /var/run/sshd
 
#replace sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
 
#set sudo for $USER
RUN sed -ri '20a'$USER'    ALL=(ALL) NOPASSWD:ALL' /etc/sudoers
 
RUN apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
#make .ssh
RUN useradd -m $USER
RUN mkdir /home/$USER/.ssh
RUN chown $USER.$USER /home/$USER/.ssh
RUN chmod 700 /home/$USER/.ssh
 
#set password
RUN echo 'root:root' |chpasswd
RUN echo $USER':1234' |chpasswd
 
EXPOSE 22
EXPOSE 80
EXPOSE 443
 
CMD ["/usr/sbin/sshd""-D"]
cs
  • 패키지 설치
    • 8 번째 줄 : 캐시 관련해서 apt update 오류나는 문제 때문에 우분투 아카이브 서버 DNS 수정
    • 10 ~ 11 번째 줄
  • ssh 관련 설정
    • 15 번째 줄 : PAM 사용 해제
    • 23 ~ 27 번째 줄 : ssh-keygen 설정 때문에 추가
    • 33 번째 줄 : 기본 포트인 22번 포트 expose
  • python 설치 및 git 관련 설정
    • 3 번째 줄 : tzdata 때문에 문제 발생해서 추가
    • 6 ~ 7번째 줄 : 역시 동일
  • sudo 관련 설정
    • 17 ~ 18 번째 줄 : sudoers 파일의 대충 20번째 줄에 권한 상승관련 설정있어서 여기에 추가
  • 기타 설정
    • 4 번째 줄 : 작업을 위해 새로 추가할 사용자명
    • 29 ~ 31번째 줄 : 패스워드 설정
    • 34 ~ 35번째 줄 : 웹 관련 작업을 위해 80, 443번 포트 추가 expose
    • 37 번째 줄 : ssh 데몬 실행

 

컨테이너 생성 결과

 

ssh 관련 오류 참고

  컨테이너 계속 갈아엎고 하다 보면 아래 사진처럼 이렇게 오류나면서 ssh 접속 오류나는 경우가 있을 수 있다.

해결 방법은 그냥 .ssh의 known_hosts 파일을 날려버리면 된다.

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31