Docker Container Build-up_ch02

윤일권·2022년 10월 21일
0

Docker Container Buildup

목록 보기
3/5
post-thumbnail

도커설치

우선 도커 설치에 앞서 도커는 리눅스 기반으로 만들어졌다.
어느 OS에서 설치하든지 상관은 없다만 되도록 도커 최적화를 위해 리죽스에서 하길 권장한다.
맥이나 윈도우에서는 별도의 가상화 기능을 추가로 설정해야한다.
하지만 기본 명령어나 사용법은 거의 동일해서 자신의 맞는 환경에서 설치하는걸 권장한다.

도커엔진 🚗=33

도커의 컨테이너 가상화 기술 변화과정을 알아보자(1~3번)

  1. 초기 도커
  • 리눅스 컨테이너 기술(LXC)을 기반으로 하는 컨테이너였다.
  1. 이전 도커
  • 0.9.0 버전부터 libcontainer OCI를 이용하였다.
  • OCI : 컨테이너 형식 및 런타임에 대한 개방형 산업 표준
  1. 현재 도커
  • 1.11.0 버전이후 runC OCI를 이용한다.
  • runC : OS에서 독립적으로 사용되는 일종의 드라이버.
    이를 통해 호스트 운영체제 의존성이 제거되면서 리눅스 플랫폼에 의존적인 LXC를 대체.
  • 전체적인 구조 : dockered, containerd 데몬, runC 라이브러리를 이용해 컨테이너들을 관리
  1. 가상화된 공간
  • 리눅스 커널에서 컨테이너를 제어하는 chroot, cgroup, namespace API를 런타임으로 활용함
  • 이를 통해 프로레스 단위의 격리 환경을 만들 수 있다.
  1. 컨테이너는 HostOS의 커널을 공유하여 사용한다.

  2. 애플리케이션 컨테이너 자체에는 필요한 실행파일과 라이브러리만 존재

  3. 만들어진 컨테이너 이미지의 용량이 가상머신의 기가 바이트에 비해 수 메가바이트로 작고 배포시간도 빠르다.

도커 엔진 설치🛸

저는 윈도우을 설치한 노트북으로 작업을 거의 대부분합니다.
하지만 이미 버츄얼박스에 우분투가 설치되어 있어서 리눅스용 도커엔진을 설치하려 합니다.
혹시 윈도우나 맥OS를 사용하시려면 설치할 때 참고만 하시고 따라하지 마세요!! 

도커 설치 환경

  1. 리눅스 환경 : VirtualBox + Ubuntu 18.04 Xenial(LTS)
  2. 리눅스 커널 정보 : 3.10이상 , 64비트(x86_64)
    • uname -a 명령어를 통해 정보 확인.
  3. docker용 유저 만들기
docker 설치에 앞서 root계정으로 하기는 너무 부담이 된다.
때문에 docker용 유저를 만들어 권한을 부여하고 앞으로 실습을 진행해보자
1. sudo adduser 유저이름 : 유저를 추가해주자 
2. su - root : 권한을 부여하기 위해 root로 이동하자 
3. usermod -aG sudo 유저이름 : sudo 없이 명령어를 실행할 수 있게 권한을 부여하자
4. su - 유저이름 : 생성한 유저로 계정을 전환하자
5. sudo whoami : 해당 명령어를 입력후 root라는 단어가 나오면 권한 부여가 이루어 진거다.

Ubuntu 18.04에 패키지를 이용한 도커 커뮤니티 에디션 설치

  1. 현재 Ubuntu 버전 확인
  2. 최신 패키지로 업데이터 수행
  • apt는 Ubunto를 비롯한 Debian계열에서 작동하는 패키지 관리 도구
  1. 도커 설치를 위해 도커와 의존성이 있는 패키지들을 미리 설치

    • sudo apt-get install -y \
    • https를 통해 데이터 및 패키지에 접근 가능하도록 함 : apt-transport-https \
    • 일종의 디지털 서명. SSL 기반의 연결 확인 : ca-certificates \
    • 웹에서 데이터 다운로드 시 사용 : curl \
    • PPA 추가, 제거에 사용 : software-properties-common
  2. 도커에서 제공하는 공식 GPG key 추가. apt가 패키지를 인증할 때 사용하는 키 리스트 관리. apt-key를 통해 지정 사이트에서 새로운 키 추가

  1. 추가된 GPG key 확인
  • sudo apt-key fingerprint
  1. 추가된 키 중에서 첫 번째 키를 선택해서 조회.
  • sudo apt-key fingerprint 0EBFCD88
  1. 데비안 계열의 도커 repository PPA 추가.
    에지 버전 설치 시 다음 구문의 마지막 stable edge 추가. 매달 기능이 업데이트되는 에지 버전은 버그 발생 가능성이 높아 안정화 버전 설치 권장
  1. 새로운 저장소가 추가되었으므로 패키지 업데이터 수행
  • apt-cache policy docker-ce
  1. 도커 커뮤니티 에디션(ce) 설피
  • sudo apt-get -y install docker-ce
  1. 도커 버전 정보와 도커 데몬 상태 확인.
  • sudo docker version
  • sudo systemctl status docker
  1. 도커는 권한이 있는 바이너리이기 때문에 실행 시 sudo를 명시하고 사용해야 함
    다음 명령은 도커 그룹에 현재 사용자 $(whoami)를 그룹에 추가함
  • sudo usermod -ag docker $(whoami)
  • sudo systemctl restart docker
  • sudo systemctl status docker
  • sudo systemctl status containerd.service
  1. 현재 계정을 로그아웃하고 다시 로그인한 후부터 sudo 없이도 docker 명령 사용 가능
  • docker version
추가적으로
 보안 설정 모듈인 SELinux가 있는데 간혹 docker 사용도중 Denied가 발생하면 이를 방지하기 위해 SELinux 설정값을 확인하고 enforcing모드라면 permissive로 변경한다
 enforcing에서는 SELinux 정책이 활성화되어 강제로 정책을 따라 오류가 발생
 permissive에서는 접근제어위반 발생 시 러그 기록만 수행하고 강제 종료하지 않는다.
 밑에서 따라해보자
  1. SELinux 실행 모드 확인
  • sestatus

//22.10.21 (위에 하다가 SELinux가 disabled 상태였고 이를 바로 잡다가 우분투가 안켜짐..)

profile
생각하는 개발자가 되겠습니다!!

0개의 댓글