23.04.13

이동욱·2023년 8월 6일
0

NaverCloudCamp

목록 보기
42/42

학습내용

  1. Docker
  2. Docker Container 생명주기
  3. Docker Volume
  4. Docker Network
  5. Docker build & commit
  6. Docker 명령어

Docker

  • 환경이 달라질때마다 환경을 표준화 하는것은 번거로운 작업이다. docker는 표준화된 환경을 docker image로 만들 수 있으며 docker engine만 존재한다면 docker image를 통해 컨테이너를 생성하여 해당 컨테이너 안에서 application을 실행 가능하게 해준다.
  • 기존의 VM과 달리 하나의 host os가 하나의 application을 관리하는것이 아닌 docker engine이 여러개의 container를 관리하는 형태이다.
  • docker의 기본 port는 80이다.

Docker Container 생명주기

### Docker Volume
  • 컨테이너를 삭제하면 해당 컨테이너의 데이터들도 모두 삭제된다 따라서 영구적으로 보관이 필요한 데이터들은 Docker Volume에 저장하여 container에 상관없이 보관 할 수 있다.
  • 컨테이너들은 Volume을 통해 서로 데이터를 공유 할 수 있다.

Docker Network

  • docker의 container들은 서로 격리되어있다 각자의 local을 가지기에 같은 docker engine 위에 있더라도 local통신을 하지 못하고 api 통신을 해야한다.
  • Docker Network는 격리된 container들을 network그룹으로 묶어 group안에 속한 container끼리는 통신이 가능하다.

Docker build & commit

  • docker build: 이미지 설정파일인 DockerFile을 생성하여 자신만의 이미지 파일 생성
  • docker commit: 컨테이너를 실행 한 뒤 원하는대로 수정하여 해당 컨테이너를 이미지 파일로 변환

Docker 터미널 명령어

  • docker ps -a => 도커 이미지 목록 확인

  • docker run => 컨테이너 생성, 실행을 한번에 해주는 명령어

  • docker search "검색어" => docker hub에서 이미지 검색

  • docker pull => docker hub의 이미지를 local로 가져온다.

  • docker exec "컨테이너이름" -it bash => bash를 통해 컨테이너 실행

  • docker run option(컨테이너 생성, 실행을 한번에 해주는 명령어)

    1. --name: 컨테이너의 이름 설정

    2. -p [host port number:container port number] 포트번호 설정(host port number: 호스트 os 에서 사용되는 port number, Container port number: container에서 사용되는 port number)

      Ex) -p 8080:80이면 host에서 8080으로 접속되는 트래픽은 docker의 80번 container로 유입된다.

    3. -d: 컨테이너를 백그라운드로 실행

    4. -i: 컨테이너의 표준입력을 활성화

    5. -t: 컨테이너의 가상 터미널을 할당, 주로 -i 명령어와 함께사용하여 리눅스 터미널에 표준입력 전달

    6. -v "마운트할 볼륨이름":"컨테이너 마운트경로"

  • docker cp "복사할 파일 경로" "container이름":"붙혀넣기 할 container 경로" => local파일을 container에 복사 붙혀넣기한다.

  • docker network create "네트워크 이름" => 네트워크 생성

  • docker commit "컨테이너 이름" "생성할 이미지 이름" => 컨테이너를 이미지로 변환

profile
Backend Developer

0개의 댓글