Docker를 이용한 개발용 서버 구축 하기{작성중) > NAS

본문 바로가기
사이트 내 전체검색

NAS

Docker를 이용한 개발용 서버 구축 하기{작성중)

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 1,676회 작성일 23-01-20 11:56

본문

1. GLIBC의 호환성 문제는 어떻게 극복해야 하나?

glibc는 gnu c library를 의미한다. 이게 왜 중요하냐 하면 linux 위에서 돌아가는 거의 대부분의 소프트웨어가 여기에 기반하고 있기 때문이다.

사실상 glibc의 버전이 몇 이냐에 따라서 해당 linux package의 전체가 결정된다고 볼 수도 있다. glibc 때문에 고충을 겪는 경우는 딱 하나다. 내 OS의 glibc 버전의 내가 실행하려는 바이너리를 빌드할 때 사용되었던 glibc에 비해 낮은 버전인 경우다. glibc 자체가 하위 호환성을 중요시하기 때문에 내가 높은 버전의 glibc를 가지고 있다면 구 버전의 glibc로 빌드된 바이너리들을 실행하는 데는 아무런 문제가 없다.


2. GLIBC 버전을 고려안 Docker  운영체제 선택 : ubuntu 14.04

   - 실행 환경 : DSM 6.2 
     getconf -a | grep libc
    GNU_LIBC_VERSION                   glibc 2.20-2014.11
   
  - Ubuntu 버젼벌 glibc 버전

버전 번호

코드명

배포일

glibc 버전

커널
버전

12.04 LTS

Precise Pangolin

2012 04 26

2.15

3.2

14.04 LTS

Trusty Tahr

2014 04 17

2.19

3.13

16.04 LTS

Xenial Xerus

2016 04 21

2.23

4.4

18.04 LTS

Bionic Beaver

2018 04 26

2.27

4.15

20.04 LTS

Focal Fossa

2020 04 23

2.31

5.4

 

3. Docker Image 생성
    -     

FROM ubuntu:14.04

LABEL website="www.sugunpo.net"

ARG DEBIAN_FRONTEND=noninteractive
ARG SSH_USER=${SSH_USER:-ubuntu}
ARG SSH_PASSWORD=${SSH_PASSWORD:-ubuntu}

ENV TZ=Asia/Seoul
ENV SSH_USER=${SSH_USER}
ENV SSH_PASSWORD=${SSH_PASSWORD}
ENV PS1A="\[\e[33m\]\u\[\e[m\]\[\e[37m\]@\[\e[m\]\[\e[34m\]\h\[\e[m\]:\[\033[01;31m\]\W\[\e[m\]$ "

RUN echo $TZ > /etc/timezone

RUN apt update \
    && apt upgrade -qq -y \
    && apt install -qq -y openssh-server \
        aptitude sudo ssh vim curl \
        net-tools iputils-ping traceroute netcat telnet dnsutils \
    && mkdir /var/run/sshd \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

USER root

RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config \
    && sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config \
    && sed -i 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config

RUN mkdir -m 700 ~/.ssh \
    && echo 'PS1=$PS1A' >> ~/.bashrc \
    && echo 'export PS1="\[\e[33m\]\u\[\e[m\]\[\e[37m\]@\[\e[m\]\[\e[34m\]\h\[\e[m\]:\[\033[01;31m\]\W\[\e[m\]$ "' >> ~/.profile \
    && echo "alias ll='ls -alh'" >> ~/.bashrc \
    && echo "root:root" | chpasswd

RUN useradd -c "System Administrator" -m -d /home/$SSH_USER -s /bin/bash $SSH_USER \
    && usermod -aG sudo $SSH_USER \
    && echo 'PS1=$PS1A' >> /home/$SSH_USER/.bashrc \
    && echo 'export PS1="\[\e[33m\]\u\[\e[m\]\[\e[37m\]@\[\e[m\]\[\e[34m\]\h\[\e[m\]:\[\033[01;31m\]\W\[\e[m\]$ "' >> /home/$SSH_USER/.profile \
    && echo "alias ll='ls -alh'" >> /home/$SSH_USER/.bashrc \
    && mkdir -m 700 /home/$SSH_USER/.ssh \
    && chown $SSH_USER.$SSH_USER /home/$SSH_USER/.ssh \
    && echo "$SSH_USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
    && echo "$SSH_USER:$SSH_PASSWORD" | chpasswd

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]


4. docker Run

 docker run -d -p 9353:22 --user=root -v /volume1/docker:/share -v /dev/:/dev \

                                 --name qaz-sshd --privileged sugunpo/ubuntu_sshd:14.04

5. Docker 접속


6. 개발 환경 설치


7. vscode 설정


8. Test

댓글목록

등록된 댓글이 없습니다.


회사소개 개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 00-000-0000 FAX. 00-000-0000 서울 강남구 강남대로 1
대표:홍길동 사업자등록번호:000-00-00000 개인정보관리책임자:홍길동

Copyright © 소유하신 도메인. All rights reserved.