RockyLinux docker 공부하기 #1

ITKHJ·2024년 9월 27일
0

Docker

목록 보기
7/7
post-thumbnail

리눅스 및 도커 설치

https://rockylinux.org/ko-KR/download
→ 도커 설치 파일 다운로드

※ RockyLinux는 PermitRootLogin yes 옵션이 아에 없기 때문에

/etc/ssh/sshd_config 파일을 넣어 위의 옵션을 추가해줘야만 Root로

다이렉트 로그인이 가능함

RockyLinux 설치

Docker 리포지토리 추가

Docker에 필요한 패키지 설치

  • 최신 버전의 Docker Engine, containerd 및 Docker Compose를 설치
  • sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

systemd docker 서비스(dockerd) 시작 및 활성화¶

  • systemctl 유틸리티를 사용하여 dockerd 데몬을 다음 시스템 재부팅 때 자동으로 시작하도록 구성하고 현재 세션에서 동시에 시작합니다.
  • sudo systemctl --now enable docker

설치 확인

  • docker --version
    → Docker 버전 확인
  • systemctl status docker
    → Active : active (running) 문구 확인

docker login

  • hub.docker.com에서 id 생성 후
    docker login -u [ID]
    password : 입력하여 로그인 해야함

일반 사용자 도커 관리하기

  • grep docker /etc/group
    → docker 엔진 설치 시 그룹 자동 생성됨

  • useradd -d /home/docker -m -g docker docker
    → docker 홈 디렉터리 생성 및 계정 생성 및 그룹지정
    → 실패할 경우 vi /etc/group 디렉터리를 열어 docker 계정 그룹에 직접 추가

  • passwd docker → 생성된 계정 패스워드 지정

컨테이너 관리하기

  • docker 대상 작업(명령어 구성)
    → 대상 : container(생략 가능), image, volume, network 등
    작업 : create (exited), start (running), stop /kill (exited), rm (remove)

  • docker container run
    → 생성 및 실행(동시 진행)

  • docker container run -it --name study centos
    → centos 이미지 pull 및 컨테이너 설치

  • docker container rm -f (force)
    → 프로세스 kill 및 삭제(동시 진행)

  • docker container ps -a
    → 컨테이너(독립된 실행 환경을 가지는 프로세스) 목록 조회

  • docker image ls
    → 이미지(파일) 목록 조회
    ※ image 파일을 docker hub에서 내려 받아 container를 생성함

  • 위에서 run으로 생성해두었던 kystudy 접속
    → docker container start -ai kystudy

  • 컨테이너 종료하지 않고 빠져나오는 단축키(detach)
    → CTRL + PQ

  • 컨테이너 재접속
    → docker container attach kystudy

컨테이너 실행 모드

※ docker는 PID 네임스페이스를 사용하여 각 컨테이너에 독립된 프로세스 트리를 제공합니다. 그 의미는 각 컨테이너는 각각 자신의 독립된 PID 1을 가진다는 의미로, 이는 다른 컨테이너들의 프로세스 트리에 접근하지 못한다는 것을 의미.

  • 1) attach mode (foreground mode)
    → 사용자가 컨테이너 프로세스(pid=1)의 입출력에 연결된 상태

  • docker container를 통한 ping test(입출력을 바로 보여줌)
    → docker container run --name c1 centos /bin/ping localhost

  • 2) detach mode(background mode)
    → 사용자가 컨테이너 프로세스(pid=1)의 입출력에 분리된 상태

  • docker container run -d --name c2 centos /bin/ping localhost
    → d (--detach) : 사용자가 컨테이너 프로세스(pid=1)의 입출력에 분리된 상태

  • detach 모드 백그라운드 실행 로그 확인
    → docker container logs c2(컨테이너 프로세스(pid=1)의 표준출력/표준오류를 출력)

  • -t 옵션으로 ping을 날린 시간도 확인 가능
    → docker container logs c2 -t (--timestamp)

  • -f(follow) 옵션으로 실시간으로 로그가 쌓이는 것 확인 가능
    → docker container logs c2 -f

  • docker container exec
    → 컨테이너 프로세스(pid=1)이외 추가적인 명령/작업
    → execute (실행)

  • docker container cp : 컨테이너와 호스트 간의 파일/디렉토리 복사
    → docker container run -dit --name c3 centos
    → echo Hello world > hostfile
    → ls -l hostfile
    → docker cp hostfile c3:/containerfile(컨테이너명:경로)

  • 1) # docker exec c3 ls -l /containerfile
    -rw-r--r-- 1 root root 12 May 27 06:37 /containerfile

  • 2) # docker exec -it c3 /bin/bash
    [root@8baaf331de74 /]# ls -l /containerfile

    -rw-r--r-- 1 root root 12 May 27 06:37 /containerfile
    [root@8baaf331de74 /]# cat /containerfile
    Hello world
    [root@8baaf331de74 /]# exit

  • 3) # docker attach c3
    [root@8baaf33
    1de74 /]# ls -l /containerfile
    -rw-r--r-- 1 root root 12 May 27 06:37 /containerfile
    [root@8baaf331de74 /]# ps -ef
    UID PID PPID C STIME TTY TIME CMD
    root 1 0 0 06:36 pts/0 00:00:00 /bin/bash
    root 37 1 0 06:40 pts/0 00:00:00 ps -ef
    [root@8baaf331de74 /]# CTRL+PQ

  • docker cp c3:/containerfile .
    → 현재 디렉터리 containerfile 복사

  • ls containerfile
    → 현재 디렉터리에 containerfile이 복사된 것을 확인 할 수 있음

  • docker container rm : 이미 종료된 컨테이너 삭제
    → docker container rm c1

  • docker rm yumi01
    → Error response from daemon: cannot remove container "/c3": container is running: stop the container before removing or force remove → 아직 컨테이너가 실행중이기 때문에 삭제 안됨

  • docker container rm -f yumi01
    → -f 옵션을 적용하여 컨테이너 종료 및 삭제 진행

  • docker container prune
    → 종료된 컨테이너들만 일괄 삭제

  • 모든 컨테이너 일괄 삭제
    → docker rm -f $(docker ps -aq)

profile
모든 업무 지식 작성하자!

0개의 댓글

관련 채용 정보