Etc

TIL | Docker 컨테이너 쉘환경 접근 및 이미지 생성

Docker 컨테이너 쉘 환경 접근 및 이미지 생성하기

Docker 컨테이너 쉘 접속

sudo docker exec -it 'container id 혹은 names' sh
  • exec: 컨테이너 외부에서, 실행중인 컨테이너에게 명령어를 전달할 수 있게 하는 명령어이다.
  • it: 컨테이너를 종료하지 않고 터미널에 입력된 명령어를 전달하기 위해 사용한다.(exec과 많이 사용한다)
  • sh: 쉘로 들어갈 수 있는 명령어
    (해당 컨테이너에서 빠져나오고자 할때는 exit 혹은 Ctrl + d를 통해 종료한다.)

 

Docker 이미지 생성하기(alpine baseimage 기준)

1. Docker file 작성

  • Docker 이미지를 만들기 위한 config 파일이다. 컨테이너가 어떻게 행동할 지에 대한 설정을 정의한다.

 

2. Docker 이미지 생성

  • Docker file의 내용이 Docker Client에 전달 및 Docker Server가 인식을 하기 위해서는 해당 파일이 위치한 디렉토리에서 sudo docker build ./를 입력한다.
  • 이미지 생성 과정은 다음과 같다. (내가 생성한 이미지 기준)
    1. Docker server에서 base iamge 가져오기(alpine, 이미지 id: 0a97eee8041e)
    2. 이미지를 통해 임시 컨테이너(id: 7ab930451f70)를 생성하고 시작될 명령어 CMD["echo","hello"]가 추가된다.
    3. 임시 컨테이너를 기반으로 새롭게 생성할 Docker image를 만들고, 임시 컨테이너는 삭제한다.
  • base image(alpine) id인 0a97eee8041e와, 내가 생성한 이미지의 id 06bdb3750c94가 다름을 통해 새롭게 image가 생성됐음을 알 수 있다.

 

3. Docker 이미지 이름 지정

  • Docker image에 이름을 주고자 할 경우, sudo docker build ./ -t 이름 순으로 입력하도록 한다.
  • 보통 Docker image의 이름은 Docker id / 저장소 or 프로젝트 이름 : 버전 지정한다고 한다.